Khi nào sử dụng MySQL Tự tham gia và các ví dụ

When Use Mysql Self Join



MySQL Self-Join là một loại SQL Join cho phép bạn tham gia một bảng với chính nó. Nó hoạt động bằng cách sử dụng các kiểu nối khác như mệnh đề nối bên trong hoặc bên trái để kết hợp các hàng dựa trên các điều kiện được chỉ định.

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng MySQL self-join để hợp nhất một bảng với chính nó và tạo dữ liệu tùy chỉnh.







Cách sử dụng cơ bản

MySQL self-join sử dụng bí danh bảng để đảm bảo bạn không lặp lại cùng một bảng nhiều hơn một lần trong một câu lệnh.



GHI CHÚ: Nếu bạn không quen với bí danh bảng, hãy xem hướng dẫn khác của chúng tôi giải thích đầy đủ khái niệm.



Cú pháp chung để sử dụng tự nối tương tự như khi kết hợp hai bảng. Tuy nhiên, chúng tôi sử dụng bí danh bảng. Hãy xem xét truy vấn được hiển thị bên dưới:





LỰA CHỌN alias1.cols,bí danh2.cols TỪ tbl1 bí danh1,tbl2 bí danh2 Ở ĐÂU [tình trạng]

Các trường hợp sử dụng mẫu

Hãy sử dụng các ví dụ để hiểu cách thực hiện tự liên kết MySQL. Giả sử bạn có một cơ sở dữ liệu với thông tin sau (Xem truy vấn đầy đủ bên dưới)

RƠI VÃI LƯỢC ĐỒ NẾU NHƯ TỒN TẠI bản thân;
TẠO RA LƯỢC ĐỒ bản thân;
SỬ DỤNG bản thân;
TẠO RA BÀN người dùng(
Tôi NS KHÓA CHÍNH AUTO_INCREMENT ,
tên đầu tiên VARCHAR (255),
e-mail VARCHAR (255),
Payment_id NS ,
đăng ký NS
);
CHÈN VÀO TRONG người dùng(tên đầu tiên,e-mail,Payment_id,đăng ký) GIÁ TRỊ ('Valerie G. Phillip', '[email được bảo vệ]', 10001, 1), ('Sean R. Câu chuyện', '[email được bảo vệ]', 10005, 2), ('Bobby S. Newsome', '[email được bảo vệ]', 100010, 5);

Chúng tôi sẽ bắt đầu với tham gia INNER và cuối cùng là tham gia bên trái.



Tự tham gia bằng cách sử dụng Tham gia bên trong

Truy vấn bên dưới thực hiện phép nối INNER trên bảng được tạo ở trên.

LỰA CHỌN al1.* TỪ người dùng al1 BÊN TRONG THAM GIA người dùng al2 TRÊN al1.subscription=al2.subscription ĐẶT BỞI Tôi DESC ;

Đầu ra được hiển thị bên dưới:

Tự tham gia bằng cách sử dụng kết nối trái

Truy vấn ví dụ bên dưới giải thích cách chúng ta có thể sử dụng self join với left join.

LỰA CHỌN ( CONCAT (al1.first_name, '->',al2.email)) NHƯ thông tin chi tiết,al1.payment_id TỪ người dùng al1 BÊN TRÁI THAM GIA người dùng al2 TRÊN al1.id=al2.id;

Kết quả đầu ra như sau:

Phần kết luận

Hướng dẫn này đã hướng dẫn bạn cách bạn có thể sử dụng MySQL self join để tham gia vào một bảng với chính nó.

Cảm ơn bạn đã đọc.