MySQL
Inner Join trong MySQL
24/12/2023
Inner Join là một trong những loại kết nối (join) phổ biến trong MySQL, được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng dựa trên điều kiện kết nối, và chỉ giữ lại các hàng có sự tương ứng từ cả hai bảng. Kết quả của Inner Join sẽ chứa các cột từ cả hai bảng cho các hàng mà điều kiện kết nối là đúng.
Cú pháp
Dưới đây là cú pháp cơ bản của Inner Join trong MySQL:
SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;
Trong đó:
- columns: Các cột bạn muốn chọn từ cả hai bảng.
- table1, table2: Các bảng bạn muốn kết hợp.
- table1.column = table2.column: Điều kiện kết nối.
Ví dụ:
Giả sử bạn có hai bảng: orders và customers. Bạn muốn lấy thông tin về tất cả các đơn đặt hàng cùng với tên khách hàng (nếu có). Dưới đây là câu lệnh SQL sử dụng Inner Join:
SELECT orders.order_id, orders.order_date, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
Trong ví dụ này, orders là bảng ở phía trái và customers là bảng ở phía phải. Câu lệnh Inner Join sử dụng điều kiện orders.customer_id = customers.customer_id để kết hợp các hàng dựa trên ID khách hàng. Kết quả sẽ chứa tất cả các đơn đặt hàng có sự tương ứng trong bảng customers, và thông tin về tên khách hàng sẽ được hiển thị.
Thêm điều kiện trong Inner Join:
Bạn có thể thêm điều kiện bổ sung trong phần WHERE để lọc kết quả của Inner Join:
SELECT orders.order_id, orders.order_date, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id
WHERE orders.order_date >= '2022-01-01';
Trong trường hợp này, chỉ các đơn đặt hàng sau ngày '2022-01-01' sẽ được hiển thị trong kết quả của Inner Join.
Inner Join là một công cụ mạnh mẽ để kết hợp dữ liệu từ nhiều bảng và chỉ giữ lại các hàng có sự tương ứng.
Sự giống nhau và khác nhau giữa Inner Join, Left Join và Right Join
Các loại join phổ biến trong SQL, bao gồm Inner Join, Left Join (hoặc Outer Join), và Right Join (hoặc Outer Join), đều được sử dụng để kết hợp dữ liệu từ hai bảng hoặc nhiều bảng dựa trên một điều kiện kết nối. Dưới đây là sự giống nhau và khác nhau giữa Inner Join, Left Join và Right Join:
Sự Giống Nhau:
Kết hợp dữ liệu từ nhiều bảng:
Inner Join, Left Join và Right Join đều cho phép bạn kết hợp dữ liệu từ hai hoặc nhiều bảng trong một câu truy vấn.
Sử dụng điều kiện kết nối:
Cả ba loại join sử dụng điều kiện kết nối (ON) để xác định cách các hàng sẽ được kết hợp. Thông thường, điều kiện kết nối liên quan đến các cột có giá trị tương ứng.
Sự Khác Nhau:
Inner Join:
Chỉ giữ lại các hàng có sự tương ứng:
Inner Join chỉ giữ lại các hàng mà có sự tương ứng trong cả hai bảng. Các hàng không có sự tương ứng sẽ không xuất hiện trong kết quả.
Kết quả bao gồm các cột từ cả hai bảng:
Kết quả của Inner Join sẽ chứa các cột từ cả hai bảng cho các hàng có sự tương ứng.
Left Join (Outer Join):
Giữ lại tất cả các hàng từ bảng ở phía trái:
Left Join giữ lại tất cả các hàng từ bảng ở phía trái (left-hand table) ngay cả khi không có sự tương ứng từ bảng ở phía phải (right-hand table). Các cột từ bảng ở phía phải sẽ chứa giá trị NULL nếu không có sự tương ứng.
Kết quả bao gồm các cột từ cả hai bảng:
Kết quả sẽ chứa các cột từ cả hai bảng cho các hàng có sự tương ứng, và các cột từ bảng ở phía phải sẽ chứa giá trị NULL cho các hàng không có sự tương ứng.
Right Join (Outer Join):
Giữ lại tất cả các hàng từ bảng ở phía phải:
Right Join giữ lại tất cả các hàng từ bảng ở phía phải (right-hand table) ngay cả khi không có sự tương ứng từ bảng ở phía trái (left-hand table). Các cột từ bảng ở phía trái sẽ chứa giá trị NULL nếu không có sự tương ứng.
Kết quả bao gồm các cột từ cả hai bảng:
Kết quả sẽ chứa các cột từ cả hai bảng cho các hàng có sự tương ứng, và các cột từ bảng ở phía trái sẽ chứa giá trị NULL cho các hàng không có sự tương ứng.
Lưu Ý:
Outer Join:
Left Join và Right Join thường được gọi là Outer Join. Outer Join bao gồm cả Left Join và Right Join. Trong một số hệ thống, bạn có thể thấy cả hai thuật ngữ được sử dụng để mô tả cùng một loại join.
Sự Ưu Tiên Cú Pháp ANSI:
Inner Join, Left Join, và Right Join là cú pháp chuẩn ANSI SQL và được hỗ trợ bởi hầu hết các hệ quản lý cơ sở dữ liệu. Tuy nhiên, có sự ưu tiên về cú pháp ANSI, nên nếu có thể, nên sử dụng cú pháp ANSI để duy trì tính di động và tương thích giữa các hệ quản lý cơ sở dữ liệu.
Bài viết liên quan
13:57 . 12/05/2024
09:36 . 14/01/2024
22:38 . 10/01/2024
22:38 . 30/12/2023
22:33 . 30/12/2023
22:30 . 30/12/2023
22:10 . 30/12/2023
22:03 . 30/12/2023
09:01 . 30/12/2023
Hỗ trợ
Thanh toán
Tuyển dụng
Liên hệ










