假设您的数据表格如下所示:
产品表格:
productID | productName | listprice
1 | A | 100
2 | B | 200
3 | C | 300
4 | D | 400
销售物品:
productId | quantity
1 | 2
2 | 2
3 | 5
4 | Null
1 | 3
注意:我在这里假设
quantity
字段没有
Not Null
约束。
查询:
SELECT productID FROM saleItem WHERE quantity =2
结果:
productID
-----------
1
-----------
2
-----------
1
查询:
SELECT distinct productID FROM saleItem WHERE quantity =2
Result:
productID
-----------
1
-----------
2
Query:
SELECT productID FROM saleItem WHERE quantity <> 2 // <> operator won't include rows with quantity having NULL values
Result:
productID
------------
1
-----------
3
-----------
1
Query:
SELECT distinct productID FROM saleItem WHERE quantity <> 2
结果:
productID
------------
1
-----------
3
因此,查询1可以转换为:
。
SELECT distinct productName, listPrice
FROM product
WHERE productID IN (1,2,1)
AND productID NOT in (1,3,1);
Results:
productID | productName | listprice
2 | B | 200
所以,查询1显示了仅具有quantity
值为2
的productID
的结果。
查询2:
SELECT distinct productName, listPrice
FROM product
WHERE productID IN (1,2,1);
Results:
productID | productName | listprice
1 | A | 100
2 | B | 200
因此,Query2将返回那些productID
的信息,其quantity
为2
,但可能还具有其他值的quantity
。
最后注意:
1)quantity <> 2
不包括具有NULL数量的行。但是Not IN ( quantity <> 2)
将包括具有2
以外的quantity
值(包括NULL
)的行。
希望能对您有所帮助: