Задачи mysql 'IN'

У меня есть две таблицы, как показано ниже,

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. Где мой запрос идет не так? Пожалуйста, помогите мне.

Почему бы вам не использовать соединение? Этот запрос выглядит уродливым и не оптимизированным, но я до сих пор не знаю, почему он не работает. Используйте соединение, подобное этому …

 select orange_id from Orange inner join Apple on Apple.id = Orange.apple_id where Apple.type = 3 

Надеюсь, это поможет Лео