1

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

SELECT * FROM product WHERE naam IS NOT (SELECT naam FROM ordered_products)
4

2 回答 2

5

您可以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;
于 2013-01-17T11:26:49.423 回答
0
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

希望这可以帮助

于 2013-01-17T11:30:02.737 回答