Ê×ÏÈÇë¿´
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)
×î½ü·ÖÇøMS SQL SERVERµÄ±í·ÖÇø£¬¸Ð¾õÉõÊǸ´ÔÓ¡£ 1. Ŀǰֻ֪µÀMS SQL SERVERÖ§³Ö·¶Î§·ÖÇøhttp://msdn.microsoft.com/zh-cn/library/ms187802.aspx£¬ ÔÚ¹Ù·½ÍøÕ¾µÄ˵Ã÷ÎĵµÀïÃæ£¬Ò²Ã»ÓÐ˵֧³ÖÆäËûµÄ·ÖÇø¡£ÍøÉÏÓÐÐÖµÜ˵»¹Ö§³Öhash·ÖÇø¡£²»ÖªµÀÊÇÔõôʵÏֵġ£ÒòΪʹÓ÷ÖÇøº¯Êý£¬ÎÒÖ»ÖªµÀÄÜŪ³ö·¶Î§·ÖÇø¡£Í¬OracleµÄ±í·ÖÇøÏà± ......