Ê×ÏÈÇë¿´
http://topic.csdn.net/u/20070821/15/8a2dac05-51b8-4eb1-b41d-4fbe8a232c85.html
ÌûÖдÓʵ¼ÊÎÊÌâ³ö·¢£¬ÌÖÂÛSQLÓï¾äÖÐÈçºÎ±íʾ³ý·¨ÔËËã¡£
ÒÔÏÂÊÇÎÊÌâµÄ¸ø³öÓë¼òÒªÃèÊö£º
±íA£ºÉ̵êÐÅÏ¢
ANO, ANAME, WQTY, CITY
101, ÉØɽÊéµê, 15, ³¤É³
204, Ç°ÃÅÉ̵ê, 89, ±±¾©
256, ¶«·çÉ̳¡, 501, ±±¾©
345, ÌúµÀÉ̵ê, 76, ³¤É³
620, Î人É̳¡, 413, Î人
±íB£ºÉÌÆ·ÐÅÏ¢
BNO, BNAME, PRICE
1, ë±Ê, 21
2, ÓðëÇò, 4
3, ÊÕÒô»ú, 325
4, Êé°ü, 242
±íAB£ºÉ̵ê-ÉÌÆ·¶ÔÓ¦¹Øϵ
ANO, BNO, QTY
101, 1, 105
101, 2, 42
101, 3, 25
101, 4, 104
204, 3, 61
256, 1, 241
256, 2, 91
345, 1, 141
345, 2, 18
345, 4, 74
620, 4, 125
ÏÖÔÚÒªÕÒ³öÖÁÉÙ¹©Ó¦´úºÅΪ256µÄÉ̵êËù¹©Ó¦µÄÈ«²¿ÉÌÆ·µÄÉ̵ê´úºÅANO£¬Ö»Éæ¼°µ½±íAB¡£Õâ¸öSQLÓï¾ä¸ÃÔõôд£¿
¾ßÌå˵£¬ÎÒÒѾ֪µÀ¹Øϵ±í´ïʽÊÇ£º
π ano, bno (AB) ÷ π bno (σ ano = 256 (AB));
ÎÒµÄÎÊÌâÊÇ£ºÈçºÎ°ÑÕâÀïµÄ³ý·¨ÔËËãת»¯ÎªSQLÓï¾äÄØ£¿
È»ºóÏÂÃæÓкܶàµÄ»Ø´ð£¬ÔÚÕâÀïÎҾͲ»Ò»Ò»ÁгöÁË¡£
Ïȸø³öÎҵIJâÊÔDDLÓëSQLÓï¾ä¡£
--DDL:
CREATE TABLE AB(
ANO INT,
BNO INT,
QTY INT
);
INSERT INTO AB VALUES ( 101, 1, 105 );
INSERT INTO AB VALUES ( 101, 2, 42 );
INSERT INTO AB VALUES ( 101, 3, 25 );
INSERT INTO AB VALUES ( 101, 4, 104 );
INSERT INTO AB VALUES ( 204, 3, 61 );
INSERT INTO AB VALUES ( 256, 1, 241 );
INSERT INTO AB VALUES ( 256, 2, 91 );
INSERT INTO AB VALUES ( 345, 1, 141 );
INSERT INTO AB VALUES ( 345, 2, 18 );
INSERT INTO AB VALUES ( 345, 4, 74 );
INSERT INTO AB VALUES ( 620, 4, 125 );
--SQL:
--1¡¢Õýͳ×ö·¨£º
SELECT DISTINCT ANO from AB
WHERE ANO NOT IN (
SELECT ANO from (
SELECT ANO,BNO from (
SELECT ANO from AB
) AS r1 CROSS JOIN (
SELECT BNO from AB
WHERE ANO = 256
) AS s1
) AS rs1
WHERE CHECKSUM(ANO,BNO)
ʹÓÃË÷Òý¿É¿ìËÙ·ÃÎÊÊý¾Ý¿â±íÖеÄÌض¨ÐÅÏ¢¡£Ë÷ÒýÊǶÔÊý¾Ý¿â±íÖÐÒ»Áлò¶àÁеÄÖµ½øÐÐÅÅÐòµÄÒ»Öֽṹ£¬ÀýÈç employee ±íµÄÐÕ£¨lname£©ÁС£Èç¹ûÒª°´ÐÕ²éÕÒÌض¨Ö°Ô±£¬Óë±ØÐëËÑË÷±íÖеÄËùÓÐÐÐÏà±È£¬Ë÷Òý»á°ïÖúÄú¸ü¿ìµØ»ñµÃ¸ÃÐÅÏ¢¡£
¡¡¡¡Ë÷ÒýÊÇÒ»¸öµ¥¶ÀµÄ¡¢ÎïÀíµÄÊý¾Ý¿â½á¹¹£¬ËüÊÇij¸ö±íÖÐÒ»ÁлòÈô¸ÉÁÐÖµµÄ¼¯ºÏºÍÏàÓ¦µÄÖ¸Ïò±íÖÐÎïÀ ......