这里有三个表:
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 |
+----+--------------------+
如何写 查询条件?
源氏大雕
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.