Для проверки наличия строк в подзапросе можно воспользоваться предложением EXISTS
.
EXISTS (подзапрос)
принимает значение TRUE
, когда подзапрос возвращает хотя бы одну строку.
Не имеет значения, что написано в списке выборки в подзапросе. По этой причине подзапросы с EXISTS
обычно выглядят примерно так:
SELECT ...
FROM ...
WHERE ...
AND EXISTS (SELECT 1 FROM ...)
Найдем товары, которые продавались:
SELECT p.product_id,
p.name
FROM product p
WHERE EXISTS (SELECT 1
FROM purchase_item pi
WHERE pi.product_id = p.product_id)
ORDER BY p.name
# | product_id | name |
---|---|---|
1 | 7 | Deepbox |
2 | 11 | Lord Nikon 95 |
3 | 12 | Nikon D750 |
4 | 3 | Nintendo |
... | ... | ... |