SQL JOIN
SQL join ÓÃÓÚ¸ù¾ÝÁ½¸ö»ò¶à¸ö±íÖеÄÁÐÖ®¼äµÄ¹ØÏµ£¬´ÓÕâЩ±íÖвéѯÊý¾Ý¡£
Join ºÍ Key
ÓÐʱΪÁ˵õ½ÍêÕûµÄ½á¹û£¬ÎÒÃÇÐèÒª´ÓÁ½¸ö»ò¸ü¶àµÄ±íÖлñÈ¡½á¹û¡£ÎÒÃǾÍÐèÒªÖ´ÐÐ join¡£
Êý¾Ý¿âÖеıí¿Éͨ¹ý¼ü½«±Ë´ËÁªÏµÆðÀ´¡£Ö÷¼ü£¨Primary Key£©ÊÇÒ»¸öÁУ¬ÔÚÕâ¸öÁÐÖеÄÿһÐеÄÖµ¶¼ÊÇΨһµÄ¡£ÔÚ±íÖУ¬Ã¿¸öÖ÷¼üµÄÖµ¶¼ÊÇΨһµÄ¡£ÕâÑù×öµÄÄ¿µÄÊÇÔÚ²»Öظ´Ã¿¸ö±íÖеÄËùÓÐÊý¾ÝµÄÇé¿öÏ£¬°Ñ±í¼äµÄÊý¾Ý½»²æÀ¦°óÔÚÒ»Æð¡£
Çë¿´ "Persons" ±í£º
Id_P | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
Çë×¢Ò⣬"Id_P" ÁÐÊÇ Persons ±íÖеĵÄÖ÷¼ü¡£ÕâÒâζ×ÅûÓÐÁ½ÐÐÄܹ»ÓµÓÐÏàͬµÄ Id_P¡£¼´Ê¹Á½¸öÈ˵ÄÐÕÃûÍêÈ«Ïàͬ£¬Id_P Ò²¿ÉÒÔÇø·ÖËûÃÇ¡£
½ÓÏÂÀ´Çë¿´ "Orders" ±í£º
Id_O | OrderNo | Id_P |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
5 | 34764 | 65 |
Çë×¢Ò⣬"Id_O" ÁÐÊÇ Orders ±íÖеĵÄÖ÷¼ü£¬Í¬Ê±£¬"Orders" ±íÖÐµÄ "Id_P" ÁÐÓÃÓÚÒýÓà "Persons" ±íÖеÄÈË£¬¶øÎÞÐèʹÓÃËûÃǵÄÈ·ÇÐÐÕÃû¡£
ÇëÁôÒ⣬"Id_P" ÁаÑÉÏÃæµÄÁ½¸ö±íÁªÏµÁËÆðÀ´¡£
ÒýÓÃÁ½¸ö±í
ÎÒÃÇ¿ÉÒÔͨ¹ýÒýÓÃÁ½¸ö±íµÄ·½Ê½£¬´ÓÁ½¸ö±íÖлñÈ¡Êý¾Ý£º
˶©¹ºÁ˲úÆ·£¬²¢ÇÒËûÃǶ©¹ºÁËʲô²úÆ·£¿
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
½á¹û¼¯£º
LastName | FirstName | OrderNo |
---|---|---|
Adams | John | 22456 |
Adams | John | 24562 |
Carter | Thomas | 77895 |
Carter | Thomas | 44678 |
SQL JOIN - ʹÓà Join
³ýÁËÉÏÃæµÄ·½·¨£¬ÎÒÃÇÒ²¿ÉÒÔʹÓùؼü´Ê JOIN À´´ÓÁ½¸ö±íÖлñÈ¡Êý¾Ý¡£
Èç¹ûÎÒÃÇÏ£ÍûÁгöËùÓÐÈ˵͍¹º£¬¿ÉÒÔʹÓÃÏÂÃæµÄ SELECT Óï¾ä£º
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
½á¹û¼¯£º
LastName | FirstName | OrderNo |
---|---|---|
Adams | John | 22456 |
Adams | John | 24562 |
Carter | Thomas | 77895 |
Carter | Thomas | 44678 |
²»Í¬µÄ SQL JOIN
³ýÁËÎÒÃÇÔÚÉÏÃæµÄÀý×ÓÖÐʹÓÃµÄ INNER JOIN£¨ÄÚÁ¬½Ó£©£¬ÎÒÃÇ»¹¿ÉÒÔʹÓÃÆäËû¼¸ÖÖÁ¬½Ó¡£
ÏÂÃæÁгöÁËÄú¿ÉÒÔʹÓÃµÄ JOIN ÀàÐÍ£¬ÒÔ¼°ËüÃÇÖ®¼äµÄ²îÒì¡£
- JOIN: Èç¹û±íÖÐÓÐÖÁÉÙÒ»¸öÆ¥Å䣬Ôò·µ»ØÐÐ
- LEFT JOIN: ¼´Ê¹ÓÒ±íÖÐûÓÐÆ¥Å䣬Ҳ´Ó×ó±í·µ»ØËùÓеÄÐÐ
- RIGHT JOIN: ¼´Ê¹×ó±íÖÐûÓÐÆ¥Å䣬Ҳ´ÓÓÒ±í·µ»ØËùÓеÄÐÐ
- FULL JOIN: Ö»ÒªÆäÖÐÒ»¸ö±íÖдæÔÚÆ¥Å䣬¾Í·µ»ØÐÐ