Header ads

Header ads

Mỗi phép Join đều phải có hai bảng, tuy nhiên có trường hợp bạn phải thực hiện JOIN trên cùng một bảng thì vẫn được, ta gọi phép JOIN này là SELF JOIN.

SELF JOIN trong SQL được sử dụng để thực hiện phép Join trên cùng một bảng bằng cách nối một bảng với chính nó, coi như đó là hai bảng và thay tên tạm thời ít nhất một bảng.

    Cú pháp SELF JOIN trong SQL

    Cú pháp cơ bản của SELF JOIN như sau:

    SELECT a.ten_cot, b.ten_cot...
    FROM bang1 a, bang1 b
    WHERE a.cot_chung = b.cot_chung;

    Ở đây, mệnh đề WHERE có thể là bất kỳ biểu thức nào theo yêu cầu của bạn.

    Ví dụ về SELF JOIN trong SQL

    Giả sử bảng NHANVIEN có các bản ghi sau:

    Bảng 1: NHANVIEN

     +----+----------+-----+-----------+----------+   | ID | TEN      |TUOI | DIACHI    | LUONG    |   +----+----------+-----+-----------+----------+   |  1 | Thanh    |  32 | Haiphong  |  2000.00 |   |  2 | Loan     |  25 | Hanoi     |  1500.00 |   |  3 | Nga      |  23 | Hanam     |  2000.00 |   |  4 | Manh     |  25 | Hue       |  6500.00 |   |  5 | Huy      |  27 | Hatinh    |  8500.00 |   |  6 | Cao      |  22 | HCM       |  4500.00 |   |  7 | Lam      |  24 | Hanoi     | 10000.00 |   +----+----------+-----+-----------+----------+   

    Bây giờ, chúng ta hãy join hai bảng này bằng cách sử dụng SELF JOIN như sau:

    SQL> SELECT a.ID, b.TEN, a.LUONG
    FROM NHANVIEN a, NHANVIEN b
    WHERE a.LUONG < b.LUONG;

    Kết quả trả về là:

     +----+----------+---------+   | ID | TEN      | LUONG   |   +----+----------+---------+   |  2 | Thanh    | 1500.00 |   |  2 | Nga      | 1500.00 |   |  1 | Manh     | 2000.00 |   |  2 | Manh     | 1500.00 |   |  3 | Manh     | 2000.00 |   |  6 | Manh     | 4500.00 |   |  1 | Huy      | 2000.00 |   |  2 | Huy      | 1500.00 |   |  3 | Huy      | 2000.00 |   |  4 | Huy      | 6500.00 |   |  6 | Huy      | 4500.00 |   |  1 | Cao      | 2000.00 |   |  2 | Cao      | 1500.00 |   |  3 | Cao      | 2000.00 |   |  1 | Lam      | 2000.00 |   |  2 | Lam      | 1500.00 |   |  3 | Lam      | 2000.00 |   |  4 | Lam      | 6500.00 |   |  5 | Lam      | 8500.00 |   |  6 | Lam      | 4500.00 |   +----+----------+---------+   

    Xem thêm các kiểu JOIN:


    Tham gia nhóm Facebook

    Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
    Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
    Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

    About Học viện đào tạo trực tuyến

    Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
    - Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
    - Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
    HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
    «
    Next
    Bài đăng Mới hơn
    »
    Previous
    Bài đăng Cũ hơn