我想从产品表中选择名称不等于OrrordEd产品中存在的名称的所有内容。我试过但没用:

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);

但是这是不安全的,如果有来自另一个表的NULL值,这就是为什么我将naam添加到子查询中的原因。更好的是,像这样使用WHERE naam IS NOT NULL
SELECT p.*
FROM product
LEFT JOIN ordered_products o ON p.naam = o.naam
WHERE p.naam IS NULL;

10-01 15:41