Załóżmy tabele z następującymi danymi próbki:
produkty:
productID | productName | listprice
-------------------------------------
1 | A | 100
-------------------------------------
2 | B | 200
-------------------------------------
3 | C | 300
-------------------------------------
4 | D | 400
saleItem:
productId | quantity
----------------------
1 | 2
----------------------
2 | 2
----------------------
3 | 5
----------------------
4 | Null
----------------------
1 | 3
Uwaga: mam założyć tutaj quantity
pola nie ma Not Null
ograniczenie.
Zapytanie:
SELECT productID FROM saleItem WHERE quantity =2
Wynik:
productID
-----------
1
-----------
2
-----------
1
Zapytanie:
SELECT distinct productID FROM saleItem WHERE quantity =2
Wynik:
productID
-----------
1
-----------
2
Zapytanie:
SELECT productID FROM saleItem WHERE quantity <> 2 // <> operator won't include rows with quantity having NULL values
Wynik:
productID
------------
1
-----------
3
-----------
1
Zapytanie:
SELECT distinct productID FROM saleItem WHERE quantity <> 2
Wynik:
productID
------------
1
-----------
3
Stąd Query 1 mogą być przekształcone w:
SELECT distinct productName, listPrice
FROM product
WHERE productID IN (1,2,1)
AND productID NOT in (1,3,1);
Wyniki:
productID | productName | listprice
-------------------------------------
2 | B | 200
Tak Query 1 pokazuje wyniki productID
, która ma tylko jedną wartość dla quantity
i to jest 2
.
Query 2:
SELECT distinct productName, listPrice
FROM product
WHERE productID IN (1,2,1);
Wyniki:
productID | productName | listprice
-------------------------------------
1 | A | 100
-------------------------------------
2 | B | 200
Więc QUERY2 powróci info dla tych productID
kto ma 2
jako ilości, ale mogą lub nie mogą mieć inne wartości quantity
także.
ostatnia uwaga:
1)quantity <> 2
nie będzie zawierała wiersze z ilością NULL. Ale Not IN (quantity <> 2)
będzie zawierać wiersze, które mają wartość dla quantity
inne niż 2
, w tym NULL
.
Mam nadzieję, że pomoże:
Proszę spojrzeć na zredagowaną odpowiedź. Zapraszam do zadawania jakichkolwiek wątpliwości. –
Czy rozumieli Państwo pojęcie tutaj? –