Для проверки наличия строк в подзапросе можно воспользоваться предложением 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 |
| ... | ... | ... |