INNER JOIN
Joining two tables
To use data from both tables at once, you join them. An INNER JOIN pairs up rows that match on a key — here, the order's customer_id with the customer's id:
When a column name could come from either table, write table.column so it is clear.
Join hai bảng
Để sử dụng dữ liệu từ cả hai bảng cùng lúc, bạn cần ghép chúng. Một phép INNER JOIN ghép nối các hàng khớp nhau theo một khóa — ở đây, hàng đơn hàng customer_id được ghép với hàng khách hàng id:
SELECT customer.name, orders.total
FROM customer
INNER JOIN orders ON customer.id = orders.customer_id;
Khi tên cột có thể đến từ bảng nào, hãy viết table.column để đảm bảo rõ ràng.
Only matching rows survive
An INNER JOIN keeps a row only when the ON condition finds a match in the other table.
In our shop, Ben and Dan have no orders, so they do not appear in the join — there is nothing to pair them with. Ada and Cara, who do have orders, appear once for each of their orders.
Chỉ giữ lại các hàng khớp nhau
Một INNER JOIN giữ một dòng chỉ khi điều kiện ON tìm thấy sự khớp trong bảng kia.
Trong cửa hàng của chúng ta, Ben và Dan không có đơn hàng nào, nên họ không xuất hiện trong join — không có gì để ghép cặp với họ. Ada và Cara, những người có đơn hàng, xuất hiện một lần cho mỗi đơn hàng của họ.
Common mistakes
- Match on the key with
ON; a missingONpairs every row with every row. - INNER JOIN drops rows with no match on the other side.
Những lỗi thường gặp
- Ghép theo khóa
ON; nếu thiếuON, mỗi hàng sẽ được ghép với mọi hàng. - INNER JOIN loại bỏ các hàng không có giá trị khớp ở phía còn lại.
INNER JOIN matches keys · INNER JOIN khớp các khóa
Rows from two tables combine where the key matches. · Các hàng từ hai bảng được gộp nơi khóa khớp nhau.
List each customer's name next to the total of each of their orders. Join customer to orders on the key, ordered by orders.id. · Liệt kê name của từng khách hàng bên cạnh total của từng đơn hàng thuộc về họ. Join (ghép) bảng customer với bảng orders dựa trên khóa chung, sắp xếp theo orders.id.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Show the customer name and order total for orders of 25 or more, largest total first. · Hiển thị name khách hàng và total đơn hàng cho các đơn hàng có từ 25 trở lên, tổng lớn nhất lên đầu.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.