18/08/2018, 11:03

Ghép bảng bằng mệnh đề FULL JOIN trong MySQL

Từ khóa FULL JOIN trả về tất cả các hàng được kết hợp từ bảng bên trái (table1) và bảng bên phải (table2). Cú pháp SELECT * FROM table1 FULL JOIN table2; Một số ví dụ Chúng ta có một bảng khachhang (khách hàng) : ID_khachhang NAME_khachhang Kh001 ...

Từ khóa FULL JOIN trả về tất cả các hàng được kết hợp từ bảng bên trái (table1) và bảng bên phải (table2).

Cú pháp

SELECT *
FROM table1
FULL JOIN table2;

Mệnh đề FULL JOIN trong MySQL

Một số ví dụ

Chúng ta có một bảng khachhang (khách hàng) :

ID_khachhang NAME_khachhang
Kh001 Khach Hang 001
Kh002 Khach Hang 002
Kh003 Khach Hang 003
Kh004 Khach Hang 004
Kh005 Khach Hang 005

Và một bảng hoadon (hóa đơn) như sau:

ID_hoadon ID_khachhang DATE_hoadon
101 Kh005 2015-03-03
102 Kh002 2015-07-09
103 Kh003 2015-10-12

(Bạn có thể bấm vào đây để download câu lệnh tạo 2 bảng như trên)

Ví dụ

Câu lệnh MySQL dưới đây sẽ trả về một bảng tất cả các hàng được kết hợp từ bảng hoadon & khachhang.

SELECT *
FROM hoadon
FULL JOIN khachhang
ORDER BY ID_hoadon, khachhang.ID_khachhang;

Sau khi thực thi, MySQL trả về một bảng kết quả như sau:

ID_hoadon ID_khachhang DATE_hoadon ID_khachhang NAME_khachhang
101 Khach Hang 005 2015-03-03 Kh001 Khach Hang 001
101 Khach Hang 005 2015-03-03 Kh002 Khach Hang 002
101 Khach Hang 005 2015-03-03 Kh003 Khach Hang 003
101 Khach Hang 005 2015-03-03 Kh004 Khach Hang 004
101 Khach Hang 005 2015-03-03 Kh005 Khach Hang 005
102 Khach Hang 002 2015-07-09 Kh001 Khach Hang 001
102 Khach Hang 002 2015-07-09 Kh002 Khach Hang 002
102 Khach Hang 002 2015-07-09 Kh003 Khach Hang 003
102 Khach Hang 002 2015-07-09 Kh004 Khach Hang 004
102 Khach Hang 002 2015-07-09 Kh005 Khach Hang 005
103 Khach Hang 003 2015-10-12 Kh001 Khach Hang 001
103 Khach Hang 003 2015-10-12 Kh002 Khach Hang 002
103 Khach Hang 003 2015-10-12 Kh003 Khach Hang 003
103 Khach Hang 003 2015-10-12 Kh004 Khach Hang 004
103 Khach Hang 003 2015-10-12 Kh005 Khach Hang 005
0