SQL JOIN

SQL join ຖືກນຳໃຊ້ເພື່ອຊອກຫາຂໍ້ມູນຈາກສອງຕະຫຼາດຫຼາຍລົງ ເພື່ອປະກອບຄວາມພົບກັນລະຫວ່າງສະເຕຣຍຂອງຕະຫຼາດ.

Join ແລະ Key

ບາງຄັ້ງເພື່ອຄົ້ນພົບຜົນທົດສອບທີ່ຫຼາຍຂຶ້ນຫຼາຍລົງ ພວກເຮົາຕ້ອງໄດ້ຊອກຫາຜົນຈາກສອງຕະຫຼາດຫຼາຍລົງ. ພວກເຮົາຕ້ອງດຳເນີນການ join.

ຕະຫຼາດຂອງຖານຂໍ້ມູນສາມາດທົດສອນກັນໂດຍການໃຊ້ສະເຕຣຍ. ຮູບແບບສຳຄັນ (Primary Key) ແມ່ນສະເຕຣຍທີ່ໃນແຕ່ລະຊັບສິນຂອງສະເຕຣຍຈະມີຄວາມຫຼາຍຫຼາຍ. ໃນຕະຫຼາດນີ້ ຄວາມຫຼາຍຫຼາຍຂອງຮູບແບບສຳຄັນຈະມີຄວາມຫຼາຍຫຼາຍ. ສິ່ງນີ້ຖືກນຳໃຊ້ເພື່ອມັດຖະກັນຂໍ້ມູນລະຫວ່າງຕະຫຼາດຂອງຖານຂໍ້ມູນໂດຍບໍ່ຕ້ອງການທົດສອນຂໍ້ມູນທັງໝົດຂອງຕະຫຼາດ.

ບອກວ່າ "Persons" ສະເຕຣຍ:

Id_P LastName FirstName Address City
1 Adams John Oxford Street ລອນດອນ
2 Bush George Fifth Avenue ນິວຍອກ
3 Carter Thomas ຖະຫຼົກຈັນ ບາງຈຽງ

ບໍ່ກະຕືລັງບອກວ່າ "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

ການຕິດຕໍ່ JOIN SQL

ກັບ JOIN INNER JOIN ທີ່ພວກເຮົາໄດ້ໃຊ້ໃນຕົວຢ່າງກ່າວຫານີ້ ພວກເຮົາຍັງສາມາດໃຊ້ການຕິດຕໍ່ອື່ນໆ.

ລາຍການທີ່ທ່ານສາມາດນຳໃຊ້ JOIN ແລະ ຄວາມແຕກຕ່າງລະຫວ່າງພວກມັນ.

  • JOIN: ຖ້າມີການຕົກລົງຈາກອັນດັບບໍ່ຕໍ່າຫນຶ່ງ ຈະກັບຄືນອັນດັບ
  • LEFT JOIN: ເຖິງວ່າບໍ່ມີການຕົກລົງຈາກປີກລັງຈະກັບຄືນອັນດັບທັງໝົດ
  • RIGHT JOIN: ເຖິງວ່າບໍ່ມີການຕົກລົງຈາກຂອງປີກລັງຈະກັບຄືນອັນດັບທັງໝົດ
  • FULL JOIN: ພຽງແຕ່ຖ້າໜຶ່ງໃນອັນດັບມີການຕົກລົງຈະກັບກັບ ຈະກັບຄືນອັນດັບ