Trong hướng dẫn này, bạn sẽ học cách sử dụng MySQL self join để tham gia một bảng với chính nó bằng cách sử dụng các mệnh đề tham gia bao gồm kết nối bên trái và kết nối bên trong.

Bạn đang xem : làm cách nào để bạn nối một bảng với chính nó trong sql

Tóm tắt: trong hướng dẫn này, bạn sẽ học cách sử dụng MySQL self join để tự nối một bảng với chính nó bằng cách sử dụng liên kết bên trong hoặc liên kết bên trái.

Trong các hướng dẫn trước, bạn đã học cách nối một bảng với các bảng khác bằng cách sử dụng INNER JOIN , LEFT JOIN , Điều khoản RIGHT JOIN hoặc CROSS JOIN . Tuy nhiên, có một trường hợp đặc biệt mà bạn cần phải nối một bảng với chính nó, được gọi là tự nối.

Tự nối thường được sử dụng để truy vấn dữ liệu phân cấp hoặc để so sánh một hàng với các hàng khác trong cùng một bảng.

Để thực hiện tự nối, bạn phải sử dụng bí danh bảng để không lặp lại cùng một tên bảng hai lần trong một truy vấn. Lưu ý rằng việc tham chiếu một bảng hai lần trở lên trong một truy vấn mà không sử dụng bí danh bảng sẽ gây ra lỗi.

Các ví dụ về tự tham gia MySQL

Hãy xem staff bảng trong cơ sở dữ liệu mẫu .

Bảng nhân viên không chỉ lưu trữ dữ liệu nhân viên mà còn dữ liệu cấu trúc tổ chức. Cột reportsto được sử dụng để xác định id người quản lý của một nhân viên.

1) MySQL tự tham gia bằng mệnh đề INNER JOIN

Để có toàn bộ cấu trúc tổ chức, bạn có thể nối bảng staff với chính nó bằng cách sử dụng cột workerNumber reportTo . Bảng nhân viên có hai vai trò: một là Người quản lý và một là Báo cáo trực tiếp.

 

CHỌN

CONCAT

(m.lastName,

','

, m.firstName)

NHƯ

Người quản lý,

CONCAT

(e.lastName,

','

, e.firstName)

AS

'Báo cáo trực tiếp'

TỪ

nhân viên e

INNER

THAM GIA

nhân viên m

BẬT

m.employeeNumber = e.reportsTo

ĐẶT HÀNG

THEO

Trình quản lý;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< span class = "sql" rel = "noopener noreferrer" target = "_ blank"> Hãy dùng thử

Ví dụ tham gia chọn lọc trong MySQL

Đầu ra chỉ hiển thị những nhân viên có người quản lý. Tuy nhiên, bạn không thấy Chủ tịch vì tên của ông ấy bị lọc ra do mệnh đề INNER JOIN .

2) MySQL tự tham gia bằng cách sử dụng LEFT JOIN mệnh đề

Chủ tịch là nhân viên không có bất kỳ người quản lý nào hoặc giá trị trong cột reportTo NULL .

Câu lệnh sau sử dụng mệnh đề LEFT JOIN thay vì INNER JOIN để bao gồm Chủ tịch:

 

CHỌN

IFNULL

(

CONCAT

(m.lastname,

',' < / p>, m.firstname),

'Top Manager'

)

AS

'Manager' ,

CONCAT

(e.lastname,

','

, e.firstname)

AS

'Báo cáo trực tiếp'

TỪ

nhân viên e

TRÁI

THAM GIA

nhân viên m

BẬT

m.employeeNumber = e.reportsto

ĐẶT HÀNG

THEO

manager

DESC

;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Dùng thử

MySQL Tự tham gia với kỹ thuật LEFT JOIN

3) Sử dụng MySQL self join để so sánh các hàng kế tiếp

Bằng cách sử dụng MySQL self join, bạn có thể hiển thị danh sách các khách hàng ở cùng một thành phố bằng cách tham gia khách hàng bảng cho chính nó.

 

CHỌN c1.city, c1.customerName, c2.customerName

TỪ

khách hàng c1

INNER

THAM GIA

khách hàng c2

BẬT

c1.city = c2.city

c1.customername & gt; c2.customerName

ĐẶT HÀNG

THEO

c1.city;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

< p class = "shcb-language__paren"> (

sql

)

Dùng thử

MySQL Tự tham gia cùng những người bạn ở cùng thành phố

Trong ví dụ này, bảng khách hàng được liên kết với chính nó bằng cách sử dụng các điều kiện tham gia sau:

  • c1.city = c2.city đảm bảo rằng cả hai khách hàng đều có cùng thành phố.

  • c.customerName & gt; c2.customerName đảm bảo rằng không có cùng một khách hàng nào được bao gồm.

Trong hướng dẫn này, bạn đã học cách tự nối MySQL để liên kết một bảng với chính nó bằng cách sử dụng Mệnh đề INNER JOIN hoặc LEFT JOIN .

Hướng dẫn này có hữu ích không?


Xem thêm những thông tin liên quan đến chủ đề làm thế nào để bạn tham gia một bảng với chính nó trong sql

Học lập trình Web A-Z - JAVASCRIPT- Bài 13 - Làm quen và làm việc với dữ liệu kiểu thời gian

alt

  • Tác giả: Thư Viện Lập Trình - EDU
  • Ngày đăng: 2021-08-01
  • Đánh giá: 4 ⭐ ( 9975 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Loạt video chủ đề dạy học lập trình và thiết kế website online từ A-Z. Phần JAVASCRIPT. Bài 13: Bắt đầu làm việc với biến kiểu thời gian và các phương thức hỗ trợ của kiểu dữ liệu thời gian.

    ► ỦNG HỘ TÀI CHỈNH TÁC GIẢ
    Nếu bạn muốn ủng hộ tài chính cho tác giả, bất kể bao nhiêu, bạn có thể chuyển khoản qua tài khoản:
    ----------------------------------------------------------------------------------
    | TECHCOMBANK, Nguyễn Kiệm, TP Hồ Chí Minh
    | Chủ TK ___: ĐẶNG VĂN LEL
    | Số TK ____: 19027982455010
    ----------------------------------------------------------------------------------

    ► Slide PowerPoint và dữ liệu
    https://drive.google.com/drive/folders/0B3HHHDrSHiPsYkVWemktNWo0TEk?resourcekey=0-Qhg4Ral7YkiTYP-6aKiYiA&usp=sharing
    ...
    CHƯƠNG trìNH TỔNG QUAN TOÀN KHÓA HỌC
    📝 Giới thiệu chi tiết về cách mà một website làm việc như thế nào trên internet.
    📝 PHẦN 1: HTML & HTML5
    📝 PHẦN 2: CSS & CSS3
    📝 PHẦN 3.1: JAVASCRIPT
    📝 PHẦN 3.2: jQuery (đã có VIDEO riêng về jQuery)
    📝 PHẦN 4: Khái niệm về cơ sở dữ liệu quan hệ
    📝 PHẦN 5: Học T-SQL và MS SQL Server (chuẩn bị cho .NET)
    📝 PHẦN 6: ASP.NET MVC
    📝 PHẦN 7: Học SQL và MySQL Server (chuẩn bị cho PHP)
    📝 PHẦN 8: PHP
    📝 PHẦN 9 (kết thúc): Giới thiệu khái niệm Web Framework và giới thiệu một số Web Framework viết bằng PHP.

    XIN LƯU Ý: Chúng tôi chỉ cho phép bạn chia sẽ lại dạng nhúng. Video này chỉ phát hành duy nhất trên kênh YOUTUBE của THƯ VIỆN LẬP TRÌNH. Nghiêm cấm mọi hành vi tải về và xuất bản lại tại bất cứ nơi nào khác. Xin cảm ơn.

    THÔNG TIN TÁC GIẢ
    ---------------------------------
    • Đặng Văn Lel
    • 0906605140
    • dangvanlel@gmail.com
    • https://facebook.com/dangvanlel
    • https://www.facebook.com/thuvienlaptrinh/

    (*) Nếu bạn thấy có vấn đề gì về việc xâm hại bản quyền nội dung hoặc hình ảnh trong video, xin vui lòng hãy liên hệ (tel) 0906605140 hoặc (mail) dangvanlel@gmail.com trước khi làm gì khác. Chúng tôi sẽ hỗ trợ hết mức có thể để giải quyết vấn đề xâm phạm bản quyền (nếu có) đối với bạn.

INSERT INTO câu lệnh chèn dữ liệu vào bảng trong SQL

  • Tác giả: sangtaotrongtamtay.vn
  • Đánh giá: 5 ⭐ ( 2775 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Câu lệnh INSERT INTO được sử dụng để chèn những bản ghi mới vào một bảng .

Hướng dẫn tạo bảng trong SQL Server

  • Tác giả: giasutinhoc.vn
  • Đánh giá: 4 ⭐ ( 3041 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Khóa chính là gì? Phân biệt khóa chính và khóa ngoại trong SQL

  • Tác giả: timviec365.vn
  • Đánh giá: 4 ⭐ ( 8048 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khóa chính nghĩa là gì? Khóa chính có tác dụng gì trong đời sống hằng ngày, đặc biệt là với các cơ sở dữ liệu tin học? Cùng tìm hiểu bài viết dưới đây nhé!

Sử dụng trigger trong SQL qua ví dụ cơ bản.

  • Tác giả: viblo.asia
  • Đánh giá: 5 ⭐ ( 1633 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trigger là gì ? Hiểu đơn giản thì Trigger là một stored procedure không có tham số. Trigger thực thi một cách tự động khi một trong ba câu lệnh Insert, Update, Delete làm thay đổi dữ liệu trên bảng có...

Thêm Dữ Liệu Vào Bảng Trong Sql Server, Lệnh Insert Trong Sql Server

  • Tác giả: 2dance.vn
  • Đánh giá: 4 ⭐ ( 9300 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mã lệnh Insert Into trong SQL được sử dụng để thêm một dòng dữ liệu trong một bảng, Chúng ta có 2 cách sử dụng Insert Into trong SQLChỉ chứa các giá trị, lưu ý với cách này các gía trị phải được đặt đúng thứ tự của các cột tương ứng khi tạo bảng

[Tự học SQL] Tạo bảng(table), Xoá bảng, After bảng trong SQL

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 7943 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này cafedev chia sẻ cho ace về cách tạo bảng(table), xoá, after nó trong SQL.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Viết truy vấn SQL đơn giản từ bảng tham chiếu - bảng tham chiếu sql ms

By ads_php