#mysql
#mysql
Вопрос:
У меня есть следующий запрос:
SELECT deals.* FROM `deals` as deals
JOIN cities_deals as cd on cd.deal_id=deals.id and cd.city_id='1'
Который выберет все сделки, а затем сгруппирует их по городу, в котором они находятся. Теперь я хочу получить список всех сделок, которых вообще нет в cities_deals.
Ответ №1:
Вы можете использовать NOT IN
:
SELECT *
FROM deals
WHERE id NOT IN (SELECT deal_id FROM cities_deals)
Альтернативный способ ее записи — использовать ЛЕВОЕ СОЕДИНЕНИЕ:
SELECT d.*
FROM deals AS d
LEFT JOIN cities_deals AS cd
ON cd.deal_id = d.id
WHERE cd.deal_id IS NULL