SQLÖÐJOINºÍUNIONÇø±ð¡¢Ó÷¨¼°Ê¾Àý
1.JOINºÍUNIONÇø±ð
join ÊÇÁ½Õűí×ö½»Á¬ºóÀïÃæÌõ¼þÏàͬµÄ²¿·Ö¼Ç¼²úÉúÒ»¸ö¼Ç¼¼¯£¬
unionÊDzúÉúµÄÁ½¸ö¼Ç¼¼¯(×Ö¶ÎÒªÒ»ÑùµÄ)²¢ÔÚÒ»Æð£¬³ÉΪһ¸öеļǼ¼¯ ¡£
JOINÓÃÓÚ°´ÕÕONÌõ¼þÁª½ÓÁ½¸ö±í£¬Ö÷ÒªÓÐËÄÖÖ£º
INNER JOIN£ºÄÚ²¿Áª½ÓÁ½¸ö±íÖеļǼ£¬½öµ±ÖÁÉÙÓÐÒ»¸öͬÊôÓÚÁ½±íµÄÐзûºÏÁª½ÓÌõ¼þʱ£¬ÄÚÁª½Ó²Å·µ»ØÐС£ÎÒÀí½âµÄÊÇÖ»Òª¼Ç¼²»·ûºÏONÌõ¼þ£¬¾Í²»»áÏÔʾÔÚ½á¹û¼¯ÄÚ¡£
LEFT JOIN / LEFT OUTER JOIN£ºÍⲿÁª½ÓÁ½¸ö±íÖеļǼ£¬²¢°üº¬×ó±íÖеÄÈ«²¿¼Ç¼¡£Èç¹û×ó±íµÄij¼Ç¼ÔÚÓÒ±íÖÐûÓÐÆ¥Åä¼Ç¼£¬ÔòÔÚÏà¹ØÁªµÄ½á¹û¼¯ÖÐÓÒ±íµÄËùÓÐÑ¡ÔñÁбíÁоùΪ¿ÕÖµ¡£Àí½âΪ¼´Ê¹²»·ûºÏONÌõ¼þ£¬×ó±íÖеļǼҲȫ²¿ÏÔʾ³öÀ´£¬ÇÒ½á¹û¼¯ÖиÃÀà¼Ç¼µÄÓÒ±í×Ö¶ÎΪ¿ÕÖµ¡£
RIGHT JOIN / RIGHT OUTER JOIN£ºÍⲿÁª½ÓÁ½¸ö±íÖеļǼ£¬²¢°üº¬ÓÒ±íÖеÄÈ«²¿¼Ç¼¡£¼òµ¥Ëµ¾ÍÊǺÍLEFT JOIN·´¹ýÀ´¡£
FULL JOIN / FULL OUTER JOIN£ºÍêÕûÍⲿÁª½Ó·µ»Ø×ó±íºÍÓÒ±íÖеÄËùÓÐÐС£¾ÍÊÇLEFT JOINºÍRIGHT JOINºÍºÏ²¢£¬×óÓÒÁ½±íµÄÊý¾Ý¶¼È«²¿ÏÔʾ¡£
JOINµÄ»ù±¾Óï·¨£º
Select table1.* from table1 JOIN table2 ON table1.id=table2.id
sqlд·¨
ÄÚÁ¬½Óinner join£º
SELECT msp.name, party.name
from msp JOIN party ON party=code
»ò
SELECT msp.name, party.name
from msp inner JOIN party ON party=code
×óÁ¬½Óleft join £º
SELECT msp.name, party.name
from msp LEFT JOIN party ON party=code
ÓÒÁ¬½Óright join £º
SELECT msp.name, party.name
from msp RIGHT JOIN party ON msp.party=party.code
È«Á¬½Ó(full join)£º
SELECT msp.name, party.name
from msp FULL JOIN party ON msp.party=party.code
UNIONÔËËã·û
½«Á½¸ö»ò¸ü¶à²éѯµÄ½á¹û¼¯×éºÏΪµ¥¸ö½á¹û¼¯£¬¸Ã½á¹û¼¯°üº¬ÁªºÏ²éѯÖеÄËùÓвéѯµÄÈ«²¿ÐС£UNIONµÄ½á¹û¼¯ÁÐÃûÓëUNIONÔËËã·ûÖеÚÒ»¸öSelectÓï¾äµÄ½á¹û¼¯µÄÁÐÃûÏàͬ¡£ÁíÒ»¸öSelectÓï¾äµÄ½á¹û¼¯ÁÐÃû½«±»ºöÂÔ¡£
ÆäÖÐÁ½ÖÖ²»Í¬µÄÓ÷¨ÊÇUNIONºÍUNION ALL£¬Çø±ðÔÚÓÚUNION´Ó½á¹û¼¯ÖÐɾ³ýÖØ¸´µÄÐС£Èç¹ûʹÓÃUNION ALL ½«°üº¬ËùÓÐÐв¢ÇÒ½«²»É¾³ýÖØ¸´µÄÐС£
UNIONºÍUNION ALLµÄÇø±ð£º
union ¼ì²éÖØ¸´
union all ²»×ö¼ì²é
±ÈÈç select 'a' union select 'a' Êä³ö¾ÍÊÇÒ»ÐÐ a
±ÈÈç select 'a' union all select 'a' Êä³ö¾ÍÊÇÁ½ÐÐ a
2. ͨ¹ýÏÂÃæµÄÀý×Ó£¬¿ÉÒÔÇåÎúµÄ¿´³öºÍÀí½â2ÕßµÄÇø±ð
ʵÀý1 µäÐ͵Ķþ±íÁ¬½ÓÑÝʾ
¼Ù¶¨ÓÐÁ½¸ö±íTable1ºÍTable2£¬Æä°üº¬µÄÁкÍÊý¾Ý·Ö
Ïà¹ØÎĵµ£º
ϵͳº¯Êý
1.case when ... then ..else ..end(ÓÃÓÚ¶ÔÌõ¼þ½øÐвâÊÔ)
e.Select id,case when name='deepwishly' then 'ÀÏ´ó' else 'ÆäËû' end as Type
ÏÔʾ id type
1 ÀÏ´ó
2.cast()/convert() ǰÕß¾ßÓÐANSI SQL-92¼æÈÝÐÔ£¬ºóÕß¹¦ÄܸüÇ ......
³£¼û²¢·¢²¢·¢Ò»ÖÂÐÔÎÊÌâ°üÀ¨£º¶ªÊ§µÄÐ޸ġ¢²»¿ÉÖØ¸´¶Á¡¢¶ÁÔàÊý¾Ý¡¢»ÃÓ°¶Á£¨»ÃÓ°¶ÁÔÚһЩ×ÊÁÏÖÐÍùÍùÓë²»¿ÉÖØ¸´¶Á¹éΪһÀࣩ¡£
2.2.1.1 ¶ªÊ§ÐÞ¸Ä
ÏÂÃæÎÒÃÇÏÈÀ´¿´Ò»¸öÀý×Ó£¬ËµÃ÷²¢·¢²Ù×÷´øÀ´µÄÊý¾ÝµÄ²»Ò»ÖÂÐÔÎÊÌâ¡£
¿¼ÂÇ·É»ú¶©Æ±ÏµÍ³ÖеÄÒ»¸ö»î¶¯ÐòÁÐ:
¼×ÊÛÆ±µã£¨¼×ÊÂÎñ£©¶Á³öijº½°àµÄ»úƱÓà¶îA,ÉèA=16.
ÒÒÊÛÆ±µã£¨ÒÒÊÂÎñ ......
ÎÊÌâÌá³ö:
ÔÚÓ¦ÓóÌÐòÖо³£ÐèÒª²éѯÊý¾Ý¡£µ±²éѯ½á¹ûÊý¾ÝÁ¿±È½Ï´óµÄʱºò£¬¼ìË÷½á¹û¡¢½çÃæÏÔʾ¶¼ÐèÒª»¨·Ñ´óÁ¿µÄʱ¼ä¡£ÎªÁ˱ÜÃâÕâ¸öÎÊÌ⣬Ӧ¸Ãÿ´ÎÖ»¼ìË÷²¿·ÖÊý¾Ý£¬Ò²¾ÍÊÇʹÓó£¼ûµÄ·ÖÒ³·½Ê½À´´¦Àí¡£·ÖÒ³µÄÎÊÌâÔÚasp.netÖкÃÏñ·Ç³£¼òµ¥£¬Ö»ÒªÔÚGridViewÖÐÆôÓ÷ÖÒ³¾Í¿ÉÒÔÁË¡£ÆôÓ÷ÖÒ³ºó£¬GridView¹ØÁªÊý¾ÝÔ´¿Ø¼þ£¬ÒÀ¾É»á¼ÓÔØ ......
±¾À´ÊÇmssql+hibernate+native SQL Ó¦ÓõĺܺÍг
µ«Êǵ½Á˰Ñmssql»»³Émysql£¬¾Í³öÁË´í(ͬÑùµÄÊý¾Ý½á¹¹ºÍÊý¾Ý)¡£
²éѯ·½·¨ÊÇ£º
String sql =
"select id XXX_ID from t_tab";
List<Map> list = session.createSQLQuery(sql)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
.list();
´í ......
1.Union
UNION Ö¸ÁîµÄÄ¿µÄÊǽ«Á½¸ö SQL Óï¾äµÄ½á¹ûºÏ²¢ÆðÀ´¡£´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬ UNION ¸ú JOIN ÓÐЩÐíÀàËÆ£¬ÒòΪÕâÁ½¸öÖ¸Áî¶¼¿ÉÒÔÓɶà¸ö±í¸ñÖÐߢȡ×ÊÁÏ¡£ UNION µÄÒ»¸öÏÞÖÆÊÇÁ½¸ö SQL Óï¾äËù²úÉúµÄÀ¸Î»ÐèÒªÊÇͬÑùµÄ×ÊÁÏÖÖÀà¡£ÁíÍ⣬µ±ÎÒÃÇÓà UNIONÕâ¸öÖ¸Áîʱ£¬ÎÒÃÇÖ»»á¿´µ½²»Í¬µÄ×ÊÁÏÖµ (ÀàËÆ SELECT DISTINCT)¡£
UNION µ ......