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: Ö»ÒªÆäÖÐÒ»¸ö±íÖдæÔÚÆ¥Å䣬¾Í·µ»ØÐÐ
VUE