假设下列表格:
TABLE: foo
=========================
| foo_id | fk_id | name |
=========================
| 1 | 100 | A |
| 2 | 100 | B |
| 3 | 200 | C |
| 4 | 200 | D |
| 5 | | E |
| 6 | | F |
-------------------------
TABLE: foo_combo
===============================================
| foo_combo_id | parent_foo_id | child_foo_id |
===============================================
| 1 | 5 | 1 |
| 2 | 5 | 2 |
| 3 | 6 | 3 |
| 4 | 6 | 4 |
-----------------------------------------------我需要获取所有foo,其中fk_id为100,所有foo组合由foo组成,其中fk_id为100.使用提供的样本数据,我需要fk_id = 1,2(这些包含fk_id = 100)和5是由foo组成的foo,fk_id = 100)。
SQL应该是什么样的?
编辑1:
我认为需要结合的两个问题:
SELECT * FROM foo WHERE fk_id = 100
SELECT foo.* FROM foo, foo_combo WHERE foo_combo.child_id IN (SELECT foo_id FROM foo WHERE fk_id = 100) AND foo.foo_id = foo_combo.parent_foo_id ???