我有两个表,如下,
Table Apple:
----------------------------------------
id | type |
----------------------------------------
1 | 3 |
----------------------------------------
2 | 3 |
----------------------------------------
3 | 3 |
----------------------------------------
Table Orange:
-------------------------------------------
orange id | apple id |
-------------------------------------------
1 | 1 |
-------------------------------------------
2 | 2 |
-------------------------------------------
3 | 3 |
-------------------------------------------
4 | 1 |
--------------------------------------------
4 | 2 |
--------------------------------------------
4 | 3 |
--------------------------------------------
我的查询如下,
SELECT orange_id
FROM orange
WHERE apple_id IN (SELECT id
FROM apple
WHERE type = 3);
以上查询返回以下结果集
1,2,3
但我需要1,2,3,4。我的查询出错了。?请帮我。
答案 0 :(得分:2)
为什么不使用联接呢?该查询看起来很丑陋并且没有优化,但是,我仍然不知道为什么它不起作用。使用类似于此的联接...
select orange_id from Orange
inner join Apple on Apple.id = Orange.apple_id
where Apple.type = 3
希望它有所帮助 利奥