Một lượng lớn dữ liệu thường được lưu trữ trong cơ sở dữ liệu MySQL. Các nhà phân tích và DBA liên tục được yêu cầu trích xuất các bản ghi từ hai hoặc nhiều bảng dựa trên các yêu cầu cụ thể để đánh giá dữ liệu đó một cách nhanh chóng. Đây là lúc THAM GIA có ích
một năm trước • 5 phút đọc
Mục lục
Giới thiệu
Trong một truy vấn duy nhất, THAM GIA được sử dụng để lấy dữ liệu từ một số bảng. Trong MySQL, THAM GIA tổng hợp dữ liệu từ một số bảng và lấy dữ liệu đó dưới dạng một kết quả duy nhất. Mỗi bảng trong cơ sở dữ liệu quan hệ bao gồm dữ liệu chung hoặc duy nhất và mỗi bảng được kết nối một cách hợp lý. THAM GIA được sử dụng để lấy dữ liệu từ các bảng chia sẻ một trường chung
THAM GIA trong MySQL là gì?
Trong MySQL, câu lệnh
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
3 là một kỹ thuật kết nối dữ liệu giữa một số bảng trong cơ sở dữ liệu dựa trên giá trị của các trường phổ biến trong các bảng đó. Tên cột và kiểu dữ liệu giống nhau thường xuất hiện trong các bảng được liên kết dưới dạng các giá trị chung. Khóa tham gia hoặc khóa chung đề cập đến các cột được chia sẻ. Các lệnh INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
4, INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
0 và INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
1 đều có thể sử dụng THAM GIABắt đầu với THAM GIA
Loại THAM GIA MySQL chỉ định cách hai bảng trong một truy vấn được liên kết. INNER JOIN, OUTER JOIN, và CROSS JOIN là ba loại mệnh đề THAM GIA được hỗ trợ bởi MySQL. LEFT JOIN và RIGHT JOIN là hai loại OUTER JOIN khác nhau. Để hiển thị cách THAM GIA hoạt động trực quan hơn, chúng ta cần tạo một lược đồ mới và chèn một số dữ liệu mẫu
CREATE TABLE Users [
UserID int,
UserName varchar[255],
Password varchar[255],
isActive boolean
];
CREATE TABLE Userprofile [
ProfileID int,
LastName varchar[255],
FirstName varchar[255],
Email varchar[255],
Phone varchar[255]
];
Điều tiếp theo chúng ta sẽ làm là chèn một số dữ liệu vào đó. Bạn có thể chèn bao nhiêu người dùng vào bảng tùy thích
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
Điều khoản THAM GIA INNER của MySQL
Chỉ các bản ghi phù hợp phổ biến được truy xuất bằng cách sử dụng INNER JOINS. Mệnh đề INNER JOIN hạn chế truy xuất bản ghi từ Bảng A và Bảng B đối với những bản ghi đáp ứng yêu cầu tham gia. Đây là loại THAM GIA thường được sử dụng nhất. Kiểm tra sơ đồ Venn bên dưới để hiểu rõ hơn về INNER THAM GIA
Đây là cú pháp cho MySQL INNER JOIN
SELECT
columns
FROM
tableA
INNER JOIN tableB
ON tableA.column = tableB.column;
THAM GIA BÊN NGOÀI MySQL
OUTER THAM GIA, trái ngược với INNER THAM GIA, tạo ra các bản ghi không khớp cũng như các hàng khớp. Nếu các hàng trong bảng được kết nối không khớp, giá trị NULL sẽ được hiển thị. MySQL có hai dạng OUTER THAM GIA khác nhau. MySQL TRÁI THAM GIA và MySQL PHẢI THAM GIA. Hãy xem xét từng người trong số họ chi tiết hơn
Mệnh đề THAM GIA TRÁI của MySQL
THAM GIA TRÁI cho phép bạn nhận tất cả các mục từ Bảng A và các mục từ Bảng B đáp ứng tiêu chí tham gia. Giá trị NULL được hiển thị cho các bản ghi từ Bảng A không phù hợp với tiêu chí. Kiểm tra biểu đồ Venn bên dưới để hiểu rõ hơn về LEFT JOINS
Đây là cú pháp cho MySQL LEFT JOIN
SELECT
columns
FROM
tableA
LEFT JOIN tableB
ON tableA.column = tableB.column;
Ghi chú. Từ khóa
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
2 trả về tất cả các bản ghi từ bảng bên trái [Khách hàng], ngay cả khi không có kết quả nào trong bảng bên phải [Đơn hàng]Mệnh đề THAM GIA QUYỀN của MySQL
Do đó, RIGHT THAM GIA cho phép bạn nhận tất cả các mục từ Bảng B và những mục từ Bảng A đáp ứng tiêu chí tham gia. Các giá trị NULL được trình bày cho các bản ghi từ Bảng B không phù hợp với tiêu chí. Để hiểu rõ hơn về RIGHT JOINS, hãy xem sơ đồ Venn bên dưới
Đây là cú pháp cho MySQL RIGHT JOIN
SELECT
columns
FROM
tableA
RIGHT JOIN tableB
ON tableA.column = tableB.column;
Ghi chú. Từ khóa
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
3 trả về tất cả các bản ghi từ bảng bên phải [Nhân viên], ngay cả khi không có kết quả nào trong bảng bên trái [Đơn hàng]Điều khoản CROSS JOIN của MySQL
MySQL CROSS JOIN, thường được gọi là phép nối cartesian, trả về tất cả các kết hợp hàng có thể có từ mỗi bảng. Nếu không có điều kiện bổ sung nào được cung cấp, tập kết quả thu được bằng cách nhân từng hàng của bảng A với tất cả các hàng trong bảng B. Kiểm tra sơ đồ Venn bên dưới để tìm hiểu thêm về CROSS JOINS
Khi nào bạn nghĩ rằng bạn sẽ cần loại THAM GIA đó? . Trong trường hợp đó, một CROSS THAM GIA sẽ khá hữu ích
Ghi chú.
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
4 có thể dẫn đến tập hợp kết quả khá lớnĐây là cú pháp cho MySQL CROSS JOIN
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
0Lời khuyên để THAM GIA
Trong MySQL, THAM GIA cho phép bạn thực hiện một truy vấn THAM GIA duy nhất thay vì nhiều truy vấn đơn giản. Do đó, bạn sẽ nhận được tốc độ được cải thiện, chi phí máy chủ thấp hơn và ít chuyển dữ liệu hơn giữa MySQL và ứng dụng của bạn. Không giống như SQL Server, MySQL không có kiểu THAM GIA riêng biệt cho FULL OUTER JOIN. Tuy nhiên, bạn có thể kết hợp LEFT OUTER JOIN và RIGHT OUTER JOIN để có hiệu ứng tương tự như FULL OUTER JOIN
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
1Sử dụng MySQL THAM GIA, bạn cũng có thể tham gia nhiều hơn hai bảng
INSERT INTO Users
[UserID, UserName,Password, isActive]
VALUES
[1,'krofax','krofax1234', true];
INSERT INTO userprofile
[profileid, lastname, firstname, email, phone]
VALUES
[1,'Ada', 'George', 'adageorge@gmail.com','1290003456'];
2Tại sao THAM GIA hữu ích?
- Nó nhanh hơn rất nhiều. Trong một truy vấn duy nhất, THAM GIA cho phép bạn lấy dữ liệu từ hai hoặc nhiều bảng cơ sở dữ liệu được liên kết. THAM GIA rất có giá trị vì chúng tiết kiệm thời gian khi chạy từng truy vấn một để đạt được kết quả tương tự
- MySQL hiệu quả hơn. Một ưu điểm khác của việc sử dụng THAM GIA là MySQL hoạt động tốt hơn vì các phép nối được thực hiện thông qua lập chỉ mục
- Sử dụng THAM GIA làm giảm tải máy chủ. Bởi vì bạn thực hiện một truy vấn, bạn sẽ nhận được kết quả tốt hơn và nhanh hơn
Bất kỳ nhà phân tích hoặc DBA nào cũng phải nắm chắc về JOIN và sử dụng chúng một cách tự do trong công việc hàng ngày của họ. Đây là lúc Arctype cho MySQL có ích. Ngay cả đối với các mệnh đề THAM GIA phức tạp, quá trình hoàn thành mã tinh vi của nó vẫn hoạt động hoàn hảo. Arctype cho MySQL sẽ cung cấp cho bạn một mệnh đề THAM GIA đầy đủ, vì vậy bạn sẽ không phải ghi nhớ hàng trăm tên cột hoặc bí danh. Khả năng giàu tính năng của nó giúp tạo các truy vấn phức tạp và quản lý các điều kiện THAM GIA một cách dễ dàng