ÉîÈëdz³öSQLÖ®×óÁ¬½Ó¡¢ÓÒÁ¬½ÓºÍÈ«Á¬½Ó
ÉϽÚÎÒÃǽéÉÜÁ˱íÁ¬½Ó£¬¸üÈ·ÇеÄ˵ÊÇinner joins內Á¬½Ó£®
¡¡¡¡內Á¬½Ó½öÑ¡³öÁ½ÕűíÖл¥ÏàÆ¥ÅäµÄ¼Ç¼£®Òò´Ë£¬Õâ»áµ¼ÖÂÓÐʱÎÒÃÇÐèÒªµÄ¼Ç¼ûÓаüº¬½øÀ´¡£
¡¡¡¡Îª¸üºÃµÄÀí½âÕâ¸ö¸ÅÄÎÒÃǽéÉÜÁ½¸ö±í×÷ÑÝʾ¡£ËÕ¸ñÀ¼Òé»áÖеÄÕþµ³±í(party)ºÍÒéÔ±±í(msp)¡£
party(Code,Name,Leader)
Code: Õþµ³´úÂë
Name: Õþµ³Ãû³Æ
Leader: Õþµ³ÁìÐä
msp(Name,Party,Constituency)
Name: ÒéÔ±Ãû
Party: ÒéÔ±ËùÔÚÕþµ³´úÂë
Constituency: Ñ¡Çø
¡¡¡¡ÔÚ½éÉÜ×óÁ¬½Ó¡¢ÓÒÁ¬½ÓºÍÈ«Á¬½Óǰ£¬ÓÐÒ»¸öÊý¾Ý¿âÖÐÖØÒªµÄ¸ÅÄîÒª½éÉÜһϣ¬¼´¿ÕÖµ(NULL)¡£
¡¡¡¡ÓÐʱ±íÖУ¬¸üÈ·ÇеÄ˵ÊÇijЩ×Ö¶ÎÖµ£¬¿ÉÄÜ»á³öÏÖ¿ÕÖµ, ÕâÊÇÒòΪÕâ¸öÊý¾Ý²»ÖªµÀÊÇʲôֵ»ò¸ù±¾¾Í²»´æÔÚ¡£
¡¡¡¡¿ÕÖµ²»µÈͬÓÚ×Ö·û´®ÖеĿոñ£¬Ò²²»ÊÇÊý×ÖÀàÐ͵Ä0¡£Òò´Ë£¬ÅжÏij¸ö×Ö¶ÎÖµÊÇ·ñΪ¿Õֵʱ²»ÄÜʹÓÃ=,<>ÕâЩÅжϷû¡£±ØÐèÓÐרÓõĶÌÓIS NULL À´Ñ¡³öÓпÕÖµ×ֶεļǼ£¬Í¬Àí£¬¿ÉÓà IS NOT NULL Ñ¡³ö²»°üº¬¿ÕÖµµÄ¼Ç¼¡£
¡¡¡¡ÀýÈ磺ÏÂÃæµÄÓï¾äÑ¡³öÁËûÓÐÁìµ¼ÕßµÄÕþµ³¡££¨²»ÒªÆæ¹Ö£¬ËÕ¸ñÀ¼Òé»áÖÐȷʵ´æÔÚÕâÑùµÄÕþµ³£©
SELECT code, name from party
WHERE leader IS NULL
¡¡¡¡ÓÖÈ磺һ¸öÒéÔ±±»¿ª³ý³öµ³£¬¿´¿´ËûÊÇË¡£(¼´¸ÃÒéÔ±µÄÕþµ³Îª¿ÕÖµ)
SELECT name from msp
WHERE party IS NULL
¡¡¡¡ºÃÁË£¬ÈÃÎÒÃÇÑÔ¹éÕý´«£¬¿´¿´Ê²Ã´½Ð×óÁ¬½Ó¡¢ÓÒÁ¬½ÓºÍÈ«Á¬½Ó¡£
¡¡¡¡A left join£¨×óÁ¬½Ó£©°üº¬ËùÓеÄ×ó±ß±íÖеļǼÉõÖÁÊÇÓұ߱íÖÐûÓкÍËüÆ¥ÅäµÄ¼Ç¼¡£
¡¡¡¡Í¬Àí£¬Ò²´æÔÚ×ÅÏàͬµÀÀíµÄ right join£¨ÓÒÁ¬½Ó£©£¬¼´°üº¬ËùÓеÄÓұ߱íÖеļǼÉõÖÁÊÇ×ó±ß±íÖÐûÓкÍËüÆ¥ÅäµÄ¼Ç¼¡£
¶øfull join(È«Á¬½Ó)¹ËÃû˼Ò壬×óÓÒ±íÖÐËùÓмǼ¶¼»áÑ¡³öÀ´¡£
¡¡¡¡½²µ½ÕâÀÓÐÈË¿ÉÄÜÒªÎÊ£¬µ½µ×ʲô½Ð£º°üº¬ËùÓеÄ×ó±ß±íÖеļǼÉõÖÁÊÇÓұ߱íÖÐûÓкÍËüÆ¥ÅäµÄ¼Ç¼¡£
¡¡¡¡ÎÒÃÇÀ´¿´Ò»¸öʵÀý£º
SELECT msp.name, party.name
from msp JOIN party ON party=code
¡¡¡¡Õâ¸öÊÇÎÒÃÇÉÏÒ»½ÚËùѧµÄJoin(×¢Ò⣺Ҳ½Ðinner join)£¬Õâ¸öÓï¾äµÄ±¾ÒâÊÇÁгöËùÓÐÒéÔ±µÄÃû×ÖºÍËûËùÊôÕþµ³¡£
¡¡¡¡ºÜÒź¶£¬ÎÒÃÇ·¢ÏָòéѯµÄ½á¹ûÉÙÁËÁ½¸öÒéÔ±£ºCanavan MSP, Dennis¡£ÎªÊ²Ã´£¬ÒòΪÕâÁ½¸öÒéÔ±²»ÊôÓÚÈκÎÕþµ³£¬¼´ËûÃǵÄÕþµ³×Ö¶Î(Party)Ϊ¿ÕÖµ¡£ÄÇôΪʲô²»ÊôÓÚÈκÎÕþµ³¾Í²é²»³öÀ´ÁË£¿ÕâÊÇÒòΪ¿ÕÖµÔÚ×÷¹Ö¡£ÒòΪÒéÔ±±íÖÐÕþµ³×Ö¶Î(Party)µÄ¿ÕÖµÔÚÕþµ³±íÖÐÕÒ²»µ½¶ÔÓ¦µÄ¼Ç¼×÷Æ¥Å䣬¼´from msp JOIN party ON party=code¡¡Ã»ÓаѸüǼÁ¬½ÓÆðÀ´£¬¶øÊ
Ïà¹ØÎĵµ£º
ORMϵͳ±ØÐë°ÑÊý¾Ý¿âÖеÄÊý¾Ýת»»ÎªÒµÎñÊý¾Ý£¬×ª»»µÄ·½·¨´óÖÂÓÐ3ÖÖ£¬±¾ÎľÍÊÔͼ¶ÔËüÃÇ×öһЩ¼òµ¥·ÖÎö¡£
1¡¢ÊôÐÔ·´Éä¡£¾ÍÊÇͨ¹ý·´É䣬»ñȡҵÎñʵÌåÀàµÄ¸÷¸öÊôÐÔ£¬È»ºóÔÙÉèÖÃÕâЩÊôÐÔµÄÖµ¡£Õâ¸ö·½·¨×î¼òµ¥¡¢×îÎȶ¨¡¢Í¨ÓÃÐÔ×îÇ¿¡¢¿Éά»¤ÐÔ×îÇ¿¡¢ÐÔÄÜ×î²î¡£ÀýÈçNHibernate¾ÍÊÇÓÃÕâÖÖ·½·¨ÊµÏֵģ¬Ëüͨ¹ýIGetterºÍISetter½Ó¿ÚÊµÏ ......
²¿ÃŽṹ
Id name parentId
-----------------
1 ÈËʲ¿ 0
2
¿ª·¢²¿ 1
3 ·þÎñ²¿ 1
Óû§½á¹¹
Id name departId
--------------------
101
ÕÅÈý 2
102 ÀîËÄ 2
103 ÍõÎå 3
ÏëµÃµ½
ID name
parentId
-------------------
1 ÈËʲ¿ 0
2 ¿ª·¢²¿ 1
101
ÕÅ ......
ÔªÊý¾Ý¼ò½é
¡¡¡¡ÔªÊý¾Ý (metadata) ×î³£¼ûµÄ¶¨ÒåΪ"ÓйØÊý¾ÝµÄ½á¹¹Êý¾Ý"£¬»òÕßÔÙ¼òµ¥Ò»µã¾ÍÊÇ"¹ØÓÚÊý¾ÝµÄÐÅÏ¢"£¬ÈÕ³£Éú»îÖеÄͼÀý¡¢Í¼Êé¹ÝĿ¼¿¨ºÍÃûƬµÈ¶¼¿ÉÒÔ¿´×÷ÊÇÔªÊý¾Ý¡£ÔÚ¹ØÏµÐÍÊý¾Ý¿â¹ÜÀíϵͳ (DBMS) ÖУ¬ÔªÊý¾ÝÃèÊöÁËÊý¾ÝµÄ½á¹¹ºÍÒâÒå¡£±ÈÈçÔÚ¹ÜÀí¡¢Î¬»¤ SQL Server »òÕßÊÇ¿ª·¢Êý¾Ý¿âÓ¦ÓóÌÐòµÄʱºò£¬ÎÒÃǾ³£Òª»ñ ......
ÔÎĵØÖ·£ºhttp://www.dingos.cn/index.php?topic=1688.0
OracleÓÐrownumÓÃÓÚ·ÃÎʱíÖÐÐкš£ÄÇôÔÚSQL ServerÖÐÊÇ·ñÓеÈЧµÄÄØ£¿»òÕßÔÚSQL ServerÖÐÈçºÎÊä³öÐкţ¿
-----------------------------------
ÔÚSQL ServerÖÐûÓÐÖ±½ÓµÈЧÓÚOracleµÄrownum
-----------------------------------
Ñϸñ˵À´£¬ÔÚ¹ØÏµÊý¾Ý¿âÖУ ......