我想从产品表中选择名称不等于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);
但这不安全,如果有来自另一个表NULL
的任何值naam
,这就是我添加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;
SELECT * FROM product WHERE naam NOT IN (SELECT naam FROM ordered_products)
或者
SELECT P.*
FROM product P
LEFT JOIN ordered_products O ON P.naam = O.naam
希望这可以帮助