MySQL: запрос для поиска только строк в таблице без похожих строк в другой таблице

#mysql #sql

#mysql #sql

Вопрос:

У меня есть две таблицы, A и B, со столбцом «ID», и мне нужен только идентификатор из таблицы A, которого нет в таблице B. Я нашел команду, которая, кажется, отлично подходит для этого, EXIST / MINUS , но, похоже, она не работает в моем случае… Ошибка синтаксиса SQL # 1064 Не могли бы вы знать запрос для этого, пожалуйста?

Комментарии:

1. Пожалуйста, предоставьте образцы данных, желаемые результаты и ваш текущий запрос.

2. Вы можете использовать NOT EXISTS или NOT IN . В стандартном SQL вы также можете использовать EXCEPT (который вызывается MINUS в Oracle), но это недоступно в MySQL.

3. В следующий раз, пожалуйста, покажите свой запрос, чтобы мы могли сказать вам, что вызывает ошибку.

Ответ №1:

Основываясь на вашем описании, запрос звучит как:

 select a.*
from a
where not exists (select 1 from b where b.id = a.id);