Hệ quản trị CSDL MySQL - INNER JOIN
Ghép bảng bằng mệnh đề INNER JOIN
Lệnh Inner Join trong MySQL tạo một bảng kết quả mới bằng cách kết hợp các giá trị cột của hai bảng (table1 và table2) dựa trên điều kiện nối. Truy vấn so sánh từng hàng của table1 với từng hàng của table2 để tìm tất cả các cặp hàng thỏa mãn điều kiện nối. Khi điều kiện nối được thỏa mãn, các giá trị cột cho mỗi cặp hàng A và B phù hợp sẽ được kết hợp thành một hàng kết quả.
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 |
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.