Как выбрать данные сразу из двух таблиц - MySQL
Формулировка задачи:
Нужно выбрать из таблицы list_letters все строки с уникальными значениями в столбце mail, которые отсутствуют в одноименном столбце таблицы subscribe.
Можно ли это сделать одним запросом?
Решение задачи: «Как выбрать данные сразу из двух таблиц»
textual
Листинг программы
select t1.* from (select * from list_letters group by mail) t1 left join subscribe using(mail) where subscribe.mail is null
Объяснение кода листинга программы
- Сначала выполняется запрос
select * from list_letters group by mailв скобках подзапросаt1, который возвращает все строки из таблицыlist_letters, сгруппированные по полюmail. - Затем выполняется операция внешнего объединения (JOIN) с таблицей
subscribeс использованием поляmailиз результата подзапросаt1. - В итоговом запросе
where subscribe.mail is nullотбираются только те строки из результата объединения, в которых полеmailиз таблицыsubscribeравноnull.