Nhiều tham gia trong MySQL

Đây là cú pháp truy vấn SQL chung để nối ba hoặc nhiều bảng. Truy vấn SQL này sẽ hoạt động trong tất cả các cơ sở dữ liệu quan hệ chính như MySQL, Oracle, Microsoft SQLServer, Sybase và PostgreSQL

Cho đến nay, các bài viết của chúng tôi trong loạt bài "Hướng dẫn minh họa" đã giải thích một số kiểu nối.

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1s,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
2s (
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
3,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
4,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
5),
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
6, tự tham gia và tham gia không đẳng thức. Trong phần cuối cùng của loạt bài này, chúng tôi chỉ cho bạn cách tạo các truy vấn SQL khớp với dữ liệu từ nhiều bảng bằng cách sử dụng một hoặc nhiều kiểu nối

Tham gia các loại trong truy vấn SQL

Trước khi chúng ta bắt đầu thảo luận về các truy vấn SQL ví dụ sử dụng nhiều kiểu nối, hãy tóm tắt ngắn gọn về các kiểu nối mà chúng ta đã đề cập cho đến nay, chỉ để chắc chắn rằng bạn hiểu sự khác biệt. Cuối cùng, đây là một bản tóm tắt ngắn ở dạng bảng. Hãy xem

Loại JOINKết hợp bản ghi từ bảngGiải thích
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
7
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
JOIN color c  
ON t.color_id = c.id ;
Nhiều tham gia trong MySQL

Kết quả

idsizecolor_ididcolor2M11yellow3NULL33blue Một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1 trả về các bản ghi khớp trong cả hai bảng.
______09
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
Nhiều tham gia trong MySQL

Kết quả.

idsizecolor_ididcolor2M11yellow3NULL33blue1SNULLNULLNULL A
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
3 trả về tất cả các bản ghi từ bảng bên trái, ngay cả khi chúng không khớp trong bảng bên phải. Các giá trị bị thiếu trở thành
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21s.
______122
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
2
Nhiều tham gia trong MySQL

Kết quả.

idsizecolor_ididcolor2M11yellow3NULL33blueNULLNULLNULL2NULL A
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
4 trả về tất cả các bản ghi từ bảng bên phải, ngay cả khi chúng không khớp với các bản ghi trong bảng bên trái. Các giá trị bị thiếu trở thành
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21s.
______125
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
8
Nhiều tham gia trong MySQL

Kết quả.

idsizecolor_ididcolor2M11yellow3NULL33blue1SNULLNULLNULLNULLNULLNULL2NULL A
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
5 trả về tất cả các bản ghi từ cả hai bảng. trái và phải, ngay cả khi các hàng không khớp. Các giá trị bị thiếu trở thành
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21s.
______128
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
2
Nhiều tham gia trong MySQL
Kết quả. idsizecolor_ididcolor2M11yellow2M12NULL2M13blue3NULL31yellow3NULL32NULL3NULL33blue1SNULL1yellow1SNULL2NULL1SNULL3blue A
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
6 trả về tích Descartes của các bản ghi từ cả hai bảng. Điều này có nghĩa là mỗi bản ghi từ bảng bên trái được nối với từng bản ghi từ bảng bên phải. Các giá trị bị thiếu trở thành
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21s.

Lưu ý rằng kết quả của mỗi loại liên kết chứa dữ liệu đến từ bảng

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
81 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82. Loại liên kết cụ thể xác định nội dung của bảng sẽ được trả về

Tham gia nhiều lần trong SQL là gì?

Mỗi truy vấn có thể bao gồm không, một hoặc nhiều phép nối. Nhiều phép nối là việc sử dụng nhiều hơn một phép nối trong một truy vấn. Các liên kết được sử dụng có thể cùng loại hoặc các loại của chúng có thể khác nhau. Chúng ta sẽ bắt đầu thảo luận bằng cách hiển thị một truy vấn ví dụ sử dụng hai phép nối cùng loại. Hãy xem truy vấn dưới đây

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
7

Truy vấn gọi hai

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1 để nối ba bảng.
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82. Chỉ những bản ghi phù hợp trong mỗi bảng sẽ được trả về. Trước tiên, hãy xem các bộ dữ liệu đã được nối

Nhiều tham gia trong MySQL

Có ba bộ dữ liệu tương ứng với ba bảng trong cơ sở dữ liệu.

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85, được trình bày bên dưới

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85

idlastname1Watson2Miller3Smith4Brown

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21

idname1green2yellow3blue

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
22

idnamecolor_idperson_id1car142bicycle2NULL3motorcycleNULL14scooter13

Bạn có thể thấy rằng mỗi

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 trong bảng xe có một màu, ngoại trừ
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
24. Mỗi phương tiện đều được chỉ định một chủ sở hữu, ngoại trừ
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
25 không có chủ sở hữu. Một trong các màu (
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
26) trong bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82 không được chỉ định cho bất kỳ phương tiện nào. Hơn nữa, xe máy không có sẵn màu trong cơ sở dữ liệu. Mặt khác,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
25 có màu được chỉ định, nhưng không có chủ sở hữu. Cuối cùng, người tên
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
29 không được giao xe

Trong truy vấn trên, chúng tôi đã sử dụng phép nối nhiều lần để chỉ truy xuất những phương tiện được chỉ định cả màu sắc và chủ sở hữu. Bảng

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 có cột
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
71 xác định
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82 trong bảng màu, cũng như cột ________ 273 xác định ________ 185 trong bảng người

kết quả truy vấn

têntênhọxe hơimàu xanh lá câyNâuxe tay gamàu xanh láSmith

Hóa ra chỉ có hai bản ghi phù hợp với tiêu chí được xác định bởi hai phép nối bên trong

Hình dưới đây trình bày trình tự nối các bản ghi từ các bảng tương ứng

Nhiều tham gia trong MySQL

Lưu ý rằng tất cả các hoạt động của

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75 được thực hiện từ trái sang phải. Ở bước một, các bảng trong
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75 đầu tiên được so khớp (bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82). Kết quả là một bảng trung gian được tạo. Ở bước hai, bảng trung gian này (được coi là bảng bên trái) được nối với một bảng khác (bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85) bằng cách sử dụng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75 thứ hai

Hãy nhớ rằng một

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75 thuộc bất kỳ loại nào sẽ tạo ra một bảng trung gian duy nhất (thường được gọi là bảng dẫn xuất) trong một truy vấn nhiều tham gia

Kết hợp trái và phải tham gia với tham gia bên trong

Cũng có thể kết hợp các loại phép nối khác nhau trong truy vấn nhiều phép nối. Hãy lấy một ví dụ với một

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
3. Giả sử chúng tôi muốn truy vấn cơ sở dữ liệu của mình cho tất cả những người sở hữu một chiếc xe có màu hoặc hoàn toàn không sở hữu một chiếc xe nào

Theo trực giác, chúng ta sẽ bắt đầu với bảng

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85 và nối nó với bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 bằng cách sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
3. Trong trường hợp đó,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
3 sẽ khớp từng bản ghi từ bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85 với một bản ghi từ bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và đối với bất kỳ người nào không tìm thấy bản ghi phù hợp, nó sẽ điền các giá trị còn thiếu bằng các giá trị
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21. Sự kết hợp này sẽ tạo ra một danh sách tất cả những người trong cơ sở dữ liệu với bất kỳ dữ liệu phương tiện được liên kết nào, ngay cả khi họ không sở hữu một. Nhưng chúng tôi muốn chỉ nhìn thấy những chiếc xe có màu sắc được chỉ định. Điều này có nghĩa là chúng ta phải sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1 trên các bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82. Đây là một truy vấn đáp ứng yêu cầu cụ thể đó, nhưng nó có thực hiện công việc không?

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
9

Không. Truy vấn này trả về cùng một kết quả mà chúng ta đã thu được từ truy vấn trước đó (chỉ sử dụng các

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1). Danh sách của chúng tôi không bao gồm những người không có xe

Kết quả

xe_tênmàu_tênhọxemàu xanh láMàu nâuxe tay gamàu xanh láSmith

Nhưng chuyện gì đã xảy ra? . e. trong bảng dẫn xuất (được tạo bằng cách nối các bảng

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84) và bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82. Làm thế nào chúng ta có thể giải quyết vấn đề này?

Truy vấn sau đây trình bày một trong số ít giải pháp khả thi. Ở đây, bảng dẫn xuất trả về các phương tiện chỉ có màu sắc và sau đó được ____04ed với bảng ____185 để có được tất cả những người

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
JOIN color c  
ON t.color_id = c.id ;
7

Kết quả

lastnamenamenameSmithscootergreenBrowncargreenMillerWatson

Bây giờ chúng tôi có một danh sách tất cả những người. những người có xe màu và những người không có xe. Chúng tôi bắt đầu với một

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1 bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82. Mỗi phương tiện có trong bảng dẫn xuất phải được chỉ định một màu, đó là lý do tại sao kiểu liên kết này phù hợp. Sau khi đã chọn các phương tiện có màu, giờ đây chúng tôi có thể sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
4 trên bảng dẫn xuất với bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85, đó là cách chúng tôi có được những người không phải là chủ sở hữu phương tiện cùng với những người (từ bảng dẫn xuất) sở hữu một phương tiện có màu

Một phương pháp khác để giải quyết vấn đề này là sử dụng một

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
3 trên bảng người và một truy vấn con trong đó chúng tôi đã sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1 trên các bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82

Hãy xem truy vấn dưới đây

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
7

THAM GIA hỗn hợp với THAM GIA đầy đủ

Tuy nhiên, một loại đa tham gia khác sử dụng các tham gia đầy đủ. Đầu tiên, chúng ta hãy xem một liên kết nhiều chỉ với các liên kết đầy đủ

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
8

Truy vấn trên khớp với các bản ghi từ ba bảng.

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85,
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82 theo cách mà ngay cả các bản ghi không trùng khớp trong hai bảng còn lại sẽ xuất hiện trong bảng kết quả. Các cột trống sẽ được lấp đầy bằng các giá trị
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
21. Đó là lý do tại sao truy vấn trả về tất cả mọi người bất kể họ có phương tiện hay không, tất cả phương tiện bất kể họ có được chỉ định màu hay không và tất cả các màu bất kể họ được chỉ định cho phương tiện nào

Kết quả

lastnamenamenameSmithscootergreenBrowncargreenbicycleyellowblueWatsonmotorcycleMiller

Chúng tôi đã sử dụng phép nối đầy đủ để nối tất cả các bản ghi, ngay cả những bản ghi không khớp. Hãy nhớ rằng phép nối đầy đủ trả về tất cả các bản ghi, trong khi phép nối bên trong chỉ trả về những bản ghi khớp

Hình dưới đây giải thích trình tự nối các bảng

Nhiều tham gia trong MySQL

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
5 cũng có thể xuất hiện trong một truy vấn với một loại liên kết khác, do đó tạo ra một liên kết nhiều loại với các loại hỗn hợp. Truy vấn dưới đây sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
5 với một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
0

Truy vấn này cho phép chúng tôi truy xuất danh sách tất cả mọi người, cho dù họ có phải là chủ phương tiện hay không và tất cả các phương tiện được chỉ định màu

Đây là cách hai phép nối hoạt động

Nhiều tham gia trong MySQL

Đầu tiên, các bảng

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
84 và
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
82 được kết hợp bằng cách sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
1. Tiếp theo, bảng dẫn xuất được kết hợp với bảng
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
85 bằng cách sử dụng một
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
5. Đây là kết quả

họtêntênSmithxe tay gamàu xanh láNâuxe hơimàu xanh láxe đạpmàu vàngWatsonMiller

Tóm lược

Một truy vấn SQL duy nhất có thể tham gia hai hoặc nhiều bảng. Khi có ba bảng trở lên tham gia, các truy vấn có thể sử dụng một loại liên kết nhiều lần hoặc chúng có thể sử dụng nhiều loại liên kết. Khi sử dụng nhiều kiểu nối, chúng ta phải xem xét cẩn thận trình tự nối để tạo ra kết quả mong muốn. Các ví dụ được trình bày trong bài viết này chứng minh rõ ràng cách một thay đổi nhỏ trong loại phép nối, (hoặc, trong trường hợp có nhiều phép nối, thứ tự chúng xuất hiện trong truy vấn) có thể thay đổi hoàn toàn kết quả truy vấn, tạo ra hoặc phá vỡ thành công

Chúng ta nên đặc biệt chú ý đến những kết hợp tham gia nào? . Mỗi kết hợp này có thể tạo ra kết quả truy vấn sai khi được sử dụng không phù hợp

Tìm hiểu thêm về SQL

Kiến thức cơ bản về phép nối SQL là bắt buộc, nhưng hầu hết những người mới bắt đầu học SQL đều cảm thấy sợ hãi trước các câu lệnh

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75. Sự thật là không có gì phải sợ

Trong bài viết này, chúng tôi đã thảo luận cách sử dụng nhiều liên kết trong một truy vấn. một trong hai loại

SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
07 hoặc hỗn hợp
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75. Bạn có thể tìm thêm thông tin về phép nối trong tài liệu toàn diện về SQL của Học viện Vertabelo. Trong các khóa học, bạn sẽ nâng cao đáng kể chuyên môn, kiểm tra và mài giũa các kỹ năng mới của mình thông qua các bài tập thực hành tương tác được cung cấp. Bắt đầu từ khóa học Cơ bản về SQL nếu bạn chưa có kiến ​​thức về SQL trước đó. Tham gia khóa học SQL THAM GIA để thực hành truy vấn nhiều bảng thông qua rất nhiều bài tập tương tác trên các câu lệnh
SELECT  t.id, t.size,
t.color_id, c.id, c.color
FROM tshirt t
LEFT JOIN color c  
ON t.color_id = c.id ;
75. Hãy thử nó ngay bây giờ để được miễn phí

Chúng ta có thể sử dụng nhiều phép nối trong SQL không?

Câu lệnh Tham gia SQL . Trong trường hợp này, hai bảng được nối bằng quan hệ table1. id = bảng2. Tôi. Có thể sử dụng nhiều câu lệnh nối cùng nhau để nối nhiều bảng cùng lúc .

Chúng ta có thể tham gia 4 bảng trong MySQL không?

THAM GIA PHẢI 4 Bàn . If you need to join 4 tables using INNER JOIN, you will get the result in a new table with matching values in all right tables.

Chúng ta có thể tham gia 5 bảng trong MySQL không?

Một truy vấn SQL có thể THAM GIA nhiều bảng . Đối với mỗi bảng mới, một điều kiện THAM GIA bổ sung được thêm vào. THAM GIA nhiều bảng hoạt động với các truy vấn CHỌN, CẬP NHẬT và XÓA.

Nhiều phép nối được thực thi trong SQL như thế nào?

Nhiều liên kết có thể được mô tả là một truy vấn chứa các liên kết cùng loại hoặc khác loại được sử dụng nhiều lần , do đó mang lại cho họ khả năng . Đối với bài viết này, trước tiên chúng ta sẽ tạo cơ sở dữ liệu chuyên viên máy tính, sau đó tạo ba bảng trong đó rồi chạy các truy vấn của chúng ta trên các bảng đó.