这里有三个表:
a 表
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
+----+
b 表
+----+------+------+
| id | a_id | c_id |
+----+------+------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 2 |
| 4 | 2 | 3 |
| 5 | 3 | 1 |
| 6 | 3 | 3 |
+----+------+------+
c 表
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
+----+
b 表 关联了 a 表 和 c 表
查询全表时:
SELECT a.id, group_concat(c.id)
FROM a
LEFT JOIN b ON b.a_id = a.id
LEFT JOIN c ON c.id = b.c_id
GROUP BY a.id;
+----+--------------------+
| id | group_concat(c.id) |
+----+--------------------+
| 1 | 1,2 |
| 2 | 2,3 |
| 3 | 1,3 |
+----+--------------------+
然后有条件: where c.id = 2
我想要的:
+----+--------------------+
| id | group_concat(c.id) |
+----+--------------------+
| 1 | 1,2 |
| 2 | 2,3 |
+----+--------------------+
然而结果是:
+----+--------------------+
| id | group_concat(c.id) |
+----+--------------------+
| 1 | 2 |
| 2 | 2 |
+----+--------------------+
如何写 查询条件?
源氏大雕