ĐẦY ĐỦ BÊN NGOÀI THAM GIA MySQL

SQL

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
2 nối hai bảng dựa trên một cột chung và chọn các bản ghi có giá trị khớp trong các cột này và các hàng còn lại từ cả hai bảng

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;

Đây là cách mã này hoạt động

Thí dụ. SQL ĐẦY ĐỦ NGOÀI THAM GIA

Ở đây, lệnh SQL chọn cột customer_id và first_name [từ bảng Khách hàng] và cột số tiền [từ bảng Đơn hàng]

Và, tập kết quả sẽ chứa các hàng có sự khớp giữa customer_id [của bảng Khách hàng] và khách hàng [của bảng Đơn hàng] cùng với tất cả các hàng còn lại từ cả hai bảng

Cú pháp FULL OUTER JOIN

Cú pháp của

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
2 là

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

FULL OUTER THAM GIA Với Mệnh đề WHERE

Lệnh SQL có thể có mệnh đề WHERE tùy chọn với câu lệnh

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
2. Ví dụ,

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer
WHERE Orders.amount >= 500;

Ở đây, lệnh SQL nối hai bảng và chọn các hàng có số tiền lớn hơn hoặc bằng 500

SQL FULL OUTER JOIN với bí danh AS

Chúng tôi có thể sử dụng bí danh AS bên trong

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
2 để làm cho đoạn trích của chúng tôi ngắn gọn và rõ ràng. Ví dụ,

SELECT C.cat_name, P.prod_title
FROM Category AS C
FULL OUTER JOIN Products AS P
ON C.cat_id= P.cat_id;

Ở đây, lệnh SQL chọn các hàng chung giữa bảng Danh mục và Sản phẩm

Tham gia đầy đủ bên ngoài so với tham gia khác

Chúng ta cũng có thể sử dụng

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
6 thay vì
SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
2. Về cơ bản 2 mệnh đề này giống nhau

Điều đó có nghĩa là,

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;

tương tự như

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;
1

SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
2 chọn các hàng chung cũng như tất cả các hàng còn lại từ cả hai bảng. Trong khi đó,
SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer
WHERE Orders.amount >= 500;
3 chọn các hàng phổ biến cũng như tất cả các hàng còn lại từ bảng bên phải

Hướng dẫn MySQL này giải thích cách sử dụng MySQL THAM GIA [bên trong và bên ngoài] với cú pháp, minh họa trực quan và ví dụ

Sự mô tả

MySQL THAM GIA được sử dụng để lấy dữ liệu từ nhiều bảng. THAM GIA MySQL được thực hiện bất cứ khi nào hai hoặc nhiều bảng được nối trong một câu lệnh SQL

Có nhiều kiểu kết nối MySQL khác nhau

  • MySQL INNER THAM GIA [hoặc đôi khi được gọi là tham gia đơn giản]
  • MySQL LEFT OUTER JOIN [hoặc đôi khi được gọi là LEFT JOIN]
  • MySQL RIGHT OUTER JOIN [hoặc đôi khi được gọi là RIGHT JOIN]

Vì vậy, hãy thảo luận về cú pháp THAM GIA của MySQL, xem các minh họa trực quan về THAM GIA của MySQL và khám phá các ví dụ về THAM GIA của MySQL

INNER THAM GIA [tham gia đơn giản]

Rất có thể, bạn đã viết một câu lệnh sử dụng MySQL INNER JOIN. Đây là kiểu nối phổ biến nhất. MySQL INNER THAM GIA trả về tất cả các hàng từ nhiều bảng khi điều kiện tham gia được đáp ứng

cú pháp

Cú pháp cho INNER THAM GIA trong MySQL là

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;
4

Minh họa trực quan

Trong sơ đồ trực quan này, MySQL INNER JOIN trả về vùng được tô bóng

MySQL INNER JOIN sẽ trả về các bản ghi nơi bảng1 và bảng2 giao nhau

Thí dụ

Đây là một ví dụ về MySQL INNER THAM GIA

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;
5

Ví dụ MySQL INNER JOIN này sẽ trả về tất cả các hàng từ bảng nhà cung cấp và đơn đặt hàng có giá trị nhà cung cấp_id phù hợp trong cả bảng nhà cung cấp và đơn đặt hàng

Hãy xem xét một số dữ liệu để giải thích cách hoạt động của INNER JOINS

Chúng tôi có một bảng được gọi là nhà cung cấp với hai trường [nhà cung cấp_id và nhà cung cấp_name]. Nó chứa các dữ liệu sau

nhà cung cấp_idsupplier_name10000IBM10001Hewlett Packard10002Microsoft10003NVIDIA

Chúng tôi có một bảng khác gọi là đơn đặt hàng với ba trường [order_id, nhà cung cấp_id và order_date]. Nó chứa các dữ liệu sau

order_idsupplier_idorder_date500125100002013/05/12500126100012013/05/13500127100042013/05/14

Nếu chúng ta chạy câu lệnh MySQL SELECT [có chứa INNER JOIN] bên dưới

SELECT Customers.customer_id, Customers.first_name, Orders.amount
FROM Customers
FULL OUTER JOIN Orders
ON Customers.customer_id = Orders.customer;
6

Tập kết quả của chúng tôi sẽ trông như thế này

nhà cung cấp_idnameorder_date10000IBM2013/05/1210001Hewlett Packard2013/05/13

Các hàng dành cho Microsoft và NVIDIA từ bảng nhà cung cấp sẽ bị bỏ qua, vì 10002 và 10003 của nhà cung cấp không tồn tại trong cả hai bảng. Hàng cho 500127 [order_id] sẽ được bao gồm vì RIGHT OUTER JOIN đã được sử dụng. Tuy nhiên, bạn sẽ nhận thấy rằng trường supply_name cho bản ghi đó chứa một giá trị

Tham gia bên ngoài đầy đủ trong MySQL là gì?

Từ khóa FULL OUTER JOIN trả về tất cả các bản ghi khi có sự trùng khớp trong các bản ghi bảng bên trái [bảng 1] hoặc bên phải [bảng 2] . Mẹo. FULL OUTER JOIN và FULL JOIN giống nhau.

MySQL có hỗ trợ tham gia bên ngoài đầy đủ không?

MySQL không hỗ trợ kết nối bên ngoài đầy đủ , không giống như các cơ sở dữ liệu khác như PostgreSQL và SQL Server. Vì vậy, bạn sẽ cần thực hiện phép nối ngoài đầy đủ bằng cách sử dụng kết hợp các loại phép nối khác, chẳng hạn như LEFT JOIN ad RIGHT JOIN được hỗ trợ trong MySQL.

Có sự tham gia đầy đủ trong MySQL không?

MySQL không hỗ trợ FULL THAM GIA , vì vậy bạn phải kết hợp THAM GIA, UNION và LEFT THAM GIA để có được tương đương. Nó đưa ra kết quả của A union B. Nó trả về tất cả các bản ghi từ cả hai bảng.

Làm cách nào để mô phỏng một kết nối bên ngoài đầy đủ trong MySQL?

MySQL không hỗ trợ nối đầy đủ nhưng nó có thể được mô phỏng bằng cách kết hợp nối trái, nối phải và nối bên trong với mệnh đề UNION ALL . Đối với truy vấn MySQL của chúng tôi, để loại bỏ các bản sao trong kết quả, chúng tôi có thể sử dụng UNION thay vì UNION ALL.

Chủ Đề