假定以下表:MySQL:在另一个子查询中使用子查询的结果?
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
其中fk_id
是100和所有foo
组合,我需要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 ???
这将不会返回组合ID。 – 2011-12-14 08:35:03
对。我想我需要`联合',但不知何故在第二个查询中引用第一个查询的结果。 – StackOverflowNewbie 2011-12-14 08:42:18