Intereting Posts
Преобразование от Oracle к внешнему соединению ANSI MySQL: ограничение количества полученных результатов на основе значения столбца | Объединение запросов Вставка нескольких строк в SQLite Преобразование отношения «многие ко многим» к «один ко многим» в PostgreSQL error -1054 неизвестный столбец e.id в оговорке заказа В SQLServer 2012 TSQL, в чем отличие использования XML RAW, XML AUTO и XML PATH Что не так с этим запросом mysql? Преобразование данных столбца разности TIMESTAMP в строковый формат Почему MySQL разрешает запросы «group by» без агрегатных функций? varbinary to varchar w / o master.dbo.fn_varbintohexstr Почему база данных не полностью поддерживает стандарты ANSI или ISO SQL? Как скопировать базу данных SQL Server с одного сервера на другой без каких-либо резервных копий Является ли CROSS JOIN синонимом INNER JOIN без предложения ON? Первичные конфликты базы данных Entity Framework Как принудительно применять только один набор полей для не-NULL исключительно среди множества (более 2) наборов?

Задачи 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 

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