[SQL] Các loại JOIN trong SQL

Chia sẻ kiến thức ngôn ngữ lập trình C, C++, C#, Java, Python, PHP, JS, SQL ...

Các điều hành viên: Admin, Mod, SMod

[SQL] Các loại JOIN trong SQL

Gửi bàigửi bởi nghiammo1992 » 11/02/2022 02:05

[SQL] Các loại JOIN trong SQL

[SQL] 10 loại kết bảng trong SQL

Team mình vừa tiếp nhận hơn chục bạn sinh viên năm 3 vô thực tập. Sắp tới các bạn sẽ được training về SQL. Ở trường các bạn mới được học có một môn về CSDL nên biết chưa nhiều lắm.
Hỏi thăm các bạn về các loại kết bảng. Các bạn liệt kê ra được INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN và kết luận 4. Ngay sau đó mình nói 9. Chênh nhau hẳn 5 loại. Google tìm ra 7 như hình. Vậy 2 loại còn lại ở đâu. Giờ mình nói thêm.


1) Thứ 8 là CROSS JOIN: kết hai bảng ko sử dụng ON, gần giống FULL JOIN. Dùng khi 2 table không có khoá ngoại với nhau hoặc có nhưng không dùng.
-----------------//-------------------
SELECT *
FROM [TABLE 1]
CROSS JOIN [TABLE 2]
Hoặc
SELECT *
FROM [TABLE 1], [TABLE 2]
--------------------/----------------


2) Thứ 9 là SELF JOIN: khi bảng kết với chính nó. Gần giống CROSS JOIN 2 table nhưng có điều kiện kết không phải là Key.
----------------//------------------
Ví dụ:
SELECT a.ID, b.NAME, a.SALARY
FROM CUSTOMERS a, CUSTOMERS b
WHERE a.SALARY < b.SALARY
Đã đủ 9 loại cho các em sinh viên. :)
FPT Software, 05/07/2016
HaiNTT5
----------------//------------------


3) Bổ sung loại thứ 10:
Hôm nay mình đã vô cùng vui khi phát hiện ra một cách JOIN cực kỳ lạ nhưng lại rất quen thuộc. Đó là JOIN với điều kiện: ON 1 = 1
----------------///------------------
SELECT *
FROM [TABLE 1]
INNER JOIN [TABLE 2] ON 1 = 1
Với câu trên bạn nghĩ nó ra cái gì. He he. Kết quả là nó tương đương với CROSS JOIN (loại thứ :matrix
Thật là thú vị. Mình cười suốt khi nghĩ tới nó. Mình đặt cho nó là loại thứ 10.
----------------///------------------


FPT Software, 19/07/2016
HaiNTT5

Nguồn: SQL Training Blog

[SQL] Các loại JOIN trong SQL
Hình đại diện của thành viên
nghiammo1992
☀️2/30☀️
☀️2/30☀️
 
Bài viết: 15
Ngày tham gia: 08/03/2012 10:56
Đến từ: Hà Giang
Thiết bị: Nokia N96
Số điện thoại: 0367790762

Quay về C, C++, C#, Java, Python, PHP, JS, SQL ...

 


  • Chủ đề tương tự
    Trả lời
    Xem
    Bài viết mới nhất

Ai đang trực tuyến?

Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến12 khách