Ghép bảng bằng mệnh đề INNER JOIN trong MySQL
Từ khóa INNER JOIN được dùng để lấy những mẫu tin giao nhau trong hai bảng. Giao nhau có thể tạm hiểu là khi cột của bảng này và bảng kia có cùng giá trị. Cú pháp SELECT * FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; Một số ví dụ Chúng ta có ...
Từ khóa INNER JOIN được dùng để lấy những mẫu tin giao nhau trong hai bảng.
Giao nhau có thể tạm hiểu là khi cột của bảng này và bảng kia có cùng giá trị.
Cú pháp
SELECT * FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
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 |
Kh006 | Khach Hang 006 |
Kh007 | Khach Hang 007 |
Kh008 | Khach Hang 008 |
Kh009 | Khach Hang 009 |
Và một bảng hoadon (hóa đơn) như sau:
ID_hoadon | ID_khachhang | DATE_hoadon |
---|---|---|
101 | Kh005 | 2015-03-03 |
102 | Kh008 | 2015-07-09 |
103 | Kh003 | 2015-10-12 |
105 | Kh004 | 2016-05-06 |
106 | Kh008 | 2016-08-08 |
(Bạn có thể bấm vào đây để download câu lệnh tạo 2 bảng như trên)
Ví dụ
Truy xuất danh sách ID_hoadon và NAME_khachhang (với điều kiện là ID_khachhang phải tồn tại ở 2 bảng)
SELECT hoadon.ID_hoadon, khachhang.NAME_khachhang FROM hoadon INNER JOIN khachhang ON hoadon.ID_khachhang=khachhang.ID_khachhang;
Sau khi thực thi, MySQL trả về một bảng kết quả như sau:
ID_hoadon | NAME_khachhang |
---|---|
103 | Khach hang 003 |
105 | Khach hang 004 |
101 | Khach hang 005 |
102 | Khach hang 008 |
106 | Khach hang 008 |
Giải thích: Ở hai bảng hoadon & khachhang chỉ có các ID_khachhang (Kh003, Kh004, Kh005, Kh008) là tồn tại ở cả 2 bảng.