我有加入小问题。我有4张桌子。多个内部联接与哪里条款 - 4表
as_ticmat TBL加盟as_mat TBL这样我就可以得到名来自列as_mat TBL同样的事情
as_sertic TBL加盟as_ser TBL但只有一个条件。这是从as_ticmat TBL的tic_id柱必须等于1,以及从as_sertic TBL的tic_id柱必须等于1
这里是我的表
mysql> TBL: as_ticmat;
+--------------+---------+---------+-----------+
| ticmat_id | mat_id | tic_id | matprice |
+--------------+---------+---------+-----------+
| 1 | 1 | 1 | 20.00 |
| 2 | 2 | 1 | 30.00 |
| 3 | 3 | 4 | 640.00 |
| 4 | 4 | 4 | 500.00 |
+--------------+---------+---------+-----------+
mysql> TBL: as_mat;
+-----------+-------------------+
| mat_id | name |
+-----------+-------------------+
| 1 | XXXX - XXXXX - XX |
| 2 | XXXX - XXXXX - XX |
| 3 | XXXX - XXXXX - XX |
| 4 | XXXX - XXXXX - XX |
+-----------+-------------------+
mysql> TBL: as_sertic;
+--------------+---------+---------+---------+---------+
| sertic_id | tic_id | ser_id | mec_id | rate |
+--------------+---------+---------+---------+---------+
| 1 | 1 | 2 | 4 | 500.00 |
| 2 | 1 | 3 | 4 | 1000.00 |
| 3 | 4 | 4 | 4 | 420.00 |
| 4 | 4 | 5 | 4 | 420.00 |
+--------------+---------+---------+---------+---------+
mysql> TBL: as_ser;
+------------+----------+--------+
| ser_id | name | price |
+------------+----------+--------+
| 1 | XXX XXXX | 50.00 |
| 2 | XXX XXXX | 50.00 |
| 3 | XXX XXXX | 250.00 |
| 4 | XXX XXXX | 210.00 |
| 5 | XXX XXXX | 210.00 |
+------------+----------+--------+
这是我的查询。
SELECT `as_ticmat`.`tickmat_id`,
`as_ticmat`.`mate_id`,
`as_ticmat`.`mateprice`,
`as_sertic`.`sertic_id`,
`as_sertic`.`ser_id`,
SUM (as_tictmat.matprice`) AS `mat`
SUM (as_sertic.rate) AS `ser`
FROM `as_ticmat`
INNER JOIN `as_sertic`
ON `as_sertic`.`ser_id` = `as_ser`.`ser_id`
INNER JOIN `as_mate`
ON `as_ticmat`.`mat_id` = `as_mat`.`mat_id`
WHERE `tic_id` = 1
你说你有一个小问题,但我没有看到任何问题? – jpw 2015-02-08 17:42:14
对不起,忘了提我的问题。有sql错误..我只是不能完成 – 2015-02-08 17:44:54
这个查询是否需要一个'group by'子句?还是满足于一行结果? – 2015-02-08 17:56:57