Lệnh tham gia có sẵn trong MySQL không?

Giới thiệu

THAM GIA trong MySQL được sử dụng để kết hợp thông tin nằm trong nhiều bảng và truy xuất thông tin đó trong một kết quả duy nhất

Cơ sở dữ liệu quan hệ chứa một số bảng có liên quan logic được liên kết với nhau và mỗi bảng chứa dữ liệu duy nhất hoặc dữ liệu chung. THAM GIA giúp truy xuất dữ liệu từ các bảng dựa trên một trường chung giữa chúng

Trong hướng dẫn này, bạn sẽ tìm hiểu MySQL THAM GIA là gì và cách sử dụng chúng

điều kiện tiên quyết

  • Máy chủ MySQL và vỏ MySQL được cài đặt
  • Tài khoản người dùng MySQL có quyền root

THAM GIA trong MySQL là gì?

Câu lệnh 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
6 trong MySQL là một phương thức liên kết dữ liệu giữa một số bảng trong cơ sở dữ liệu dựa trên các giá trị của cột chung trong các bảng đó

Các giá trị phổ biến thường có cùng tên cột và kiểu dữ liệu có trong các bảng được nối. Các cột chung đó được gọi là khóa tham gia hoặc khóa chung

THAM GIA có thể được sử dụng trong các câu lệnh 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
7, 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
8 và 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
9

Ví dụ THAM GIA MySQL

Trong hướng dẫn này, chúng tôi sẽ sử dụng một cơ sở dữ liệu ví dụ với hai bảng. danh sách khách hàng và thanh toán. Mục tiêu là làm rõ khái niệm về phép nối bằng cách hiển thị kết quả của từng loại phép nối trong một ví dụ

  • Bảng customer_list là danh sách những người mà chúng ta sẽ gọi là khách hàng. Nó chứa thông tin về từng khách hàng cũng như số dư tài khoản của họ. Mỗi khách hàng có một ID duy nhất

  • Bảng thanh toán chứa thông tin về các khoản tiền gửi và rút tiền của từng khách hàng được kết nối với ID khách hàng

Cột chung của hai bảng này là ID khách hàng và chúng tôi sẽ sử dụng nó làm điều kiện trong THAM GIA

Các loại THAM GIA MySQL

Có một số loại THAM GIA MySQL và mỗi loại giúp nhận được các kết quả khác nhau khi tham gia các bảng

1. INNER JOIN – Kết quả trả về dữ liệu khớp từ cả hai bảng

2. LEFT OUTER JOIN – Kết quả từ bảng bên trái và dữ liệu phù hợp từ bảng bên phải

3. RIGHT OUTER JOIN – Kết quả từ bảng bên phải và dữ liệu phù hợp từ bảng bên trái

4. FULL OUTER JOIN – Kết quả từ cả hai bảng khi có dữ liệu khớp

5. THAM GIA CHÉO – Kết quả là sự kết hợp của mọi hàng từ các bảng đã tham gia

Các sơ đồ Venn sau đây biểu thị từng loại liên kết bằng đồ họa

Các kiểu nối khác nhau cho phép người dùng nhận được kết quả khi thông tin chỉ xuất hiện ở một trong các bảng đã nối

THAM GIA BÊN TRONG

Loại liên kết đơn giản nhất là 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
0. Kết quả 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
0 với một tập hợp các bản ghi đáp ứng điều kiện đã cho trong các bảng đã nối. Nó khớp từng hàng trong một bảng với mọi hàng trong các bảng khác và cho phép người dùng truy vấn các hàng chứa các cột từ cả hai bảng

Cú pháp của một 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
0 là

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
INNER JOIN table2
ON table1.matching_column = table2.matching_column;

Cú pháp 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
2 biểu thị cột chung cho cả hai bảng

Sau câu lệnh 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
7, nếu một cột là duy nhất cho một bảng thì không cần chỉ định tên bảng

Vì 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
0 được coi là loại liên kết mặc định nên chỉ sử dụng câu lệnh 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
6 được chấp nhận

Ví dụ

Trong ví dụ này, 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
6 là 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
7, trong khi 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
8 là 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
9. Cột chung cho cả hai bảng là CustomerID

Tập hợp kết quả được trả về hiển thị danh sách khách hàng từ bảng customer_list và các khoản tiền gửi của những khách hàng đó, nằm trong bảng thanh toán

TRÁI NGOÀI THAM GIA

_______60 [hoặc 

SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
1] trả về tất cả các bản ghi từ bảng ở phía bên trái của phép nối và các bản ghi phù hợp từ bảng ở phía bên phải của phép nối. Nếu có các hàng không có hàng phù hợp trên bảng bên phải, thì giá trị kết quả được hiển thị là NULL

Cú pháp của 

SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
0 là

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;

Ví dụ

Trong ví dụ này, bảng bên trái là danh sách khách hàng, trong khi bảng bên phải là thanh toán. Tập kết quả trả về tất cả khách hàng từ bảng customer_list và kết quả khớp từ bảng thanh toán

Ở những nơi mà khách hàng không đặt cọc, giá trị được trả về được hiển thị là NULL

RIGHT NGOÀI THAM GIA

___63 [

SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
4] về cơ bản là đảo ngược của
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
0

_______64 trả về tất cả các bản ghi từ bảng ở phía bên phải của phép nối và các bản ghi phù hợp từ bảng ở phía bên trái của phép nối. Nếu có các hàng không có hàng phù hợp trên bảng bên trái, thì giá trị kết quả được hiển thị là NULL

Cú pháp của 

SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
3 là

SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;

Ví dụ

Trong ví dụ này, kết quả trả về hiển thị bất kỳ khách hàng nào đã gửi tiền. Những khách hàng không gửi tiền không được hiển thị trong kết quả

THAM GIA NGOÀI ĐẦY ĐỦ

MySQL không hỗ trợ 

SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
8. Để có kết quả tương đương, hãy sử dụng kết hợp của 
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
1, 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
80 và 
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
4, kết quả là kết hợp của bảng 1 và bảng 2, trả về tất cả các bản ghi từ cả hai bảng. Các cột chỉ tồn tại trong một bảng sẽ được hiển thị dưới dạng NULL trong bảng đối diện

Cú pháp là

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
8

Ví dụ

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
82 không loại trừ các bảng trùng lặp, đó là lý do tại sao chúng tôi sử dụng 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
80 để hiển thị sự kết hợp của hai bảng, bao gồm cả các bảng trùng lặp. Giá trị NULL được hiển thị khi không có dữ liệu phù hợp, tôi. e. , khi khách hàng không gửi tiền hoặc rút tiền hoặc không có ID khách hàng

Nếu bạn muốn loại trừ các hàng trùng lặp khỏi tập kết quả, hãy sử dụng câu lệnh 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
84 thay vì 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
80 để xóa các hàng trùng lặp

Tập hợp kết quả bao gồm tất cả các kết quả phù hợp, không bao gồm các hàng trùng lặp

THAM GIA CHÉO

_______186 [còn được gọi là THAM GIA CARTESIAN] nối từng hàng của một bảng với từng hàng của một bảng khác. ______186 xảy ra khi cột phù hợp hoặc điều kiện 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
88 không được chỉ định. Tập hợp kết quả của một ____189 liên kết là sản phẩm của số lượng hàng của các bảng đã tham gia

Sử dụng 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
86 khi bạn muốn kết hợp mọi hàng từ hai bảng.
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
86 hữu ích khi bạn muốn tạo kết hợp các mục, chẳng hạn như màu sắc hoặc kích thước

Nếu điều kiện 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
88 được chỉ định, thì 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
86 hoạt động giống như một 
SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
0

Cú pháp của 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
86 là

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
4

Ví dụ

Trong ví dụ này, mỗi bản ghi từ cột Tên khách hàng được nối với mỗi hàng từ cột Rút tiền. Sẽ không hợp lý khi sử dụng 

SELECT table1.column1, table1.column2, table2.column1, ...
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
86 trong cơ sở dữ liệu như thế này, nhưng ví dụ minh họa kết quả

Tại sao THAM GIA hữu ích?

  • Nó nhanh hơn. THAM GIA giúp truy xuất dữ liệu từ hai hoặc nhiều bảng cơ sở dữ liệu có liên quan trong một truy vấn. THAM GIA đặc biệt hữu ích vì nó nhanh hơn nhiều so với việc phải chạy từng truy vấn một để có cùng kết quả
  • MySQL hoạt động tốt hơn. Một lợi ích khác của việc sử dụng THAM GIA là MySQL hoạt động tốt hơn vì nó sử dụng lập chỉ mục khi thực hiện các phép nối
  • Sử dụng THAM GIA giúp giảm chi phí máy chủ. Bạn chỉ chạy một truy vấn duy nhất, dẫn đến hiệu suất tốt hơn và nhanh hơn

Phần kết luận

Bây giờ bạn đã biết tất cả các loại MySQL THAM GIA khác nhau và cách sử dụng chúng. Vui lòng thử nghiệm các loại liên kết khác nhau, vì nó sẽ rõ ràng hơn nhiều khi bạn đưa chúng vào sử dụng và xem kết quả cho ví dụ cơ sở dữ liệu của bạn

Tham gia có phải là một lệnh hợp lệ trong MySQL không?

MySQL THAM GIA. MySQL THAM GIA được sử dụng với câu lệnh CHỌN . Nó được sử dụng để lấy dữ liệu từ nhiều bảng. Nó được thực hiện bất cứ khi nào bạn cần tìm nạp bản ghi từ hai bảng trở lên.

Tham gia nào không có sẵn trong MySQL?

Lưu ý rằng nối ngoài đầy đủ không được MySQL hỗ trợ mặc dù bạn có thể mô phỏng bằng cách kết hợp nối ngoài trái và phải với UNION . Oracle và SQL Server hỗ trợ kết nối bên ngoài đầy đủ.

Làm cách nào để tham gia vào các bảng trong MySQL?

trả lời. Tham gia hai bảng trong SQL có thể được thực hiện theo bốn cách chính. Inner Join [trả về các hàng có cột phù hợp], Left Join [TẤT CẢ bản ghi trong bảng bên trái và bản ghi phù hợp trong bảng bên phải], Right Join [TẤT CẢ bản ghi trong bảng bên phải và bản ghi phù hợp trong bảng bên trái] và Union [xóa

Làm cách nào để thêm tham gia MySQL?

Để nối các bảng, bạn sử dụng mệnh đề nối chéo, nối trong, nối trái hoặc nối phải. Mệnh đề nối được sử dụng trong câu lệnh SELECT xuất hiện sau mệnh đề TỪ. Lưu ý rằng MySQL chưa hỗ trợ FULL OUTER JOIN. .
tham gia bên trong
Chỗ nối bên trái
tham gia ngay
tham gia chéo

Chủ Đề