Мне нужно найти артикулы (идентификаторы), которых нет в нашем каталоге. Запросы просты
SELECT sku
FROM stock
WHERE sku NOT IN (SELECT sku FROM catalog)
но могут быть и отсутствующие артикулы в таблице распродажи
SELECT DISTINCT sku
FROM sale
WHERE sku NOT IN (SELECT sku FROM catalog)
Я хотел бы получить единый результат от mysql, будут ли все недостающие SKUS. Соединить эти два запроса с Union здесь не получится. Спасибо, всего хорошего
Вы можете попробовать использовать UNION
SELECT sku
FROM stock
WHERE sku NOT IN (SELECT sku FROM catalog)
union
SELECT sku
FROM sale
WHERE sku NOT IN (SELECT sku FROM catalog)
для получения distink SKU из обоих запросов
или
select sku
from (
SELECT sku FROM stock
union
SELECT sku FROM sale
) t
where sku NOT IN (SELECT sku FROM catalog)
в любом случае первый должен быть более производительным
@ spencer7593 спасибо за подсказку. к счастью sku не может быть нулевым в моем случае
просто убедитесь, что мы гарантировали, что
sku
, возвращенное изcatalog
, не будет NULL; условие NOT IN никогда не будет выполнено, если подзапрос возвращает значение NULL