我想从产品表中选择名称不等于 ordered_products 中现有名称的所有内容。我试过了,但没用:
SELECT * FROM product WHERE naam IS NOT (SELECT naam FROM ordered_products)
最佳答案
您可以像这样使用 NOT IN
谓词:
SELECT *
FROM product
WHERE naam NOT IN (SELECT naam
FROM ordered_products
WHERE naam IS NOT NULL);
但这并不安全,以防 naam
的任何 NULL
值来自其他表,这就是我添加 WHERE naam IS NOT 的原因NULL
到子查询。更好的做法是像这样使用 JOIN
:
SELECT p.*
FROM product
LEFT JOIN ordered_products o ON p.naam = o.naam
WHERE p.naam IS NULL;
关于mysql - SQL比较行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14378035/