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ệnh đề INNER 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
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.