【发布时间】:2010-09-27 05:00:43
【问题描述】:
我有 3 张桌子,foo、foo2bar 和 bar。 foo2bar 是 foo 和 bar 之间的多对多映射。以下是内容。
select * from foo
+------+
| fid |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
+------+
select * from foo2bar
+------+------+
| fid | bid |
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 3 |
| 4 | 4 |
+------+------+
select * from bar
+------+-------+------+
| bid | value | zid |
+------+-------+------+
| 1 | 2 | 10 |
| 2 | 4 | 20 |
| 3 | 8 | 30 |
| 4 | 42 | 30 |
+------+-------+------+
我想要请求的是,“给我一份所有 fid 和 zid 为 30 的值的列表”
我希望得到所有 fid 的答案,因此结果如下所示:
+------+--------+
| fid | value |
+------+--------+
| 1 | null |
| 2 | 8 |
| 3 | null |
| 4 | 42 |
+------+--------+
【问题讨论】:
标签: sql join many-to-many operator-precedence