, , IN ( BETWEEN, LIKE, IS NULL ). , IN , , . IN , SQL . , , IN, , , ( 10.4):
SELECT *
FROM Orders
WHERE snum IN (SELECT snum
FROM Salespeople
WHERE city = 'London');
=============== SQL Execution Log ==============
| SELECT * |
| FROM Orders |
| WHERE snum IN |
| (SELECT snum |
| FROM Salespeople |
| WHERE city = 'London'); |
| =============================================== |
| onum amt odate cnum snum |
| ----- -------- ---------- ----- ------ |
| 3003 767.19 10/03/1990 2001 1001 |
| 3002 1900.10 10/03/1990 2007 1004 |
| 3006 1098.19 10/03/1990 2008 1007 |
| 3008 4723.00 10/05/1990 2006 1001 |
| 3011 9891.88 10/06/1990 2006 1001 |
=================================================
10.4. IN.
, , , , , , :
SELECT onum, amt, odate, cnum, Orders.snum
FROM Orders, Salespeople
WHERE Orders.snum = Salespeople.snum
AND Salespeople.city = 'London';
, , SQL .
snum city = 'London', , . snum=1001 snum=1004. , snum .
, , . , , .
, , , , , . , .
, IN, , . , (=), IN. , IN , . .
|
|
; , , . . , , :
SELECT onum, amt, odate
FROM Orders
WHERE snum = (SELECT snum
FROM Orders
WHERE cnum = 2001);
DISTINCT, IN (=), :
SELECT onum, amt, odate
FROM Orders
WHERE snum IN (SELECT snum
FROM Orders
WHERE cnum = 2001);
, ? , IN, . , , , . , (=), .
, , , . , , .
, , ( ) , =. IN , , .
, :
SELECT comm
FROM Salespeople
WHERE snum IN (SELECT snum
FROM Customers
WHERE city = 'London');
, 10.5, Peel (snum = 1001), . . , - . , IN .
=============== SQL Execution Log ==============
| SELECT comm |
| FROM Salespeople |
| WHERE snum IN |
| (SELECT snum |
| FROM Customers |
| WHERE city = 'London'); |
| =============================================== |
| comm |
| ------- |
| 0.12 |
=================================================
10.5: IN
, city , city .
SQL , FROM . , . , "city" WHERE , Customer.city ( city ).
FROM , SQL , . , , . , , .