329 words
2 minutes
JOIN ON
2025-06-30

https://sqlzoo.net/wiki/The_JOIN_operation

🧩 核心概念#

JOIN ON 是 SQL 中连接多个表的操作,基于两个表之间的关联字段建立关系:

SELECT 列...
FROM 表A
JOIN 表B ON 表A.关联列 = 表B.关联列

🔍 四大连接类型#

连接类型描述示例结果特点
INNER JOIN返回匹配的记录JOIN...ON A.id=B.id仅两表匹配的行
LEFT JOIN返回左表所有记录+匹配的右表记录LEFT JOIN...ON...左表完整,右表可能为NULL
RIGHT JOIN返回右表所有记录+匹配的左表记录RIGHT JOIN...ON...右表完整,左表可能为NULL
FULL JOIN返回两个表所有记录FULL JOIN...ON...两表完整,不匹配部分为NUL

💡 最佳实践指南#

1. 标准连接语法#

SELECT orders.id, customers.name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id

2. 多表连接#

SELECT o.order_date, c.name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.id
JOIN products p ON o.product_id = p.id

经典例题: 展示电影类型“Alien”的演员清单。 https://chat.deepseek.com/a/chat/s/56193c33-56e1-464c-9134-ad60c1f846e4

SELECT actor.name -- 目标表:actor,我们想要演员名字
FROM movie -- 过滤表:通过movie表过滤电影
JOIN casting ON movie.id = casting.movieid -- 连接表:casting连接movie
JOIN actor ON actor.id = casting.actorid -- 连接表:casting连接actor
WHERE title = 'Alien' -- 过滤条件在movie表上

3. 复杂连接条件#

SELECT *
FROM employees e
JOIN departments d ON e.dept_id = d.id AND d.location = 'NY'
JOIN ON
https://fishlet.top/posts/sql_learning_note_5/
Author
Ember
Published at
2025-06-30
License
CC BY-NC-SA 4.0