**Inner Join(内连接)**是最常用的 SQL 连接类型,核心特点是:只返回两表中满足连接条件的匹配记录,不匹配的数据直接丢弃。
下面从适用场景、典型例子、不适合的场景三个方面说明。
当你明确只关心两个表都存在对应记录的情况时使用。
示例:
SELECT u.user_id, o.order_id
FROM user u
INNER JOIN orders o
ON u.user_id = o.user_id;
✅ 结果中:没有下过单的用户不会出现
在业务系统中非常常见,例如:
SELECT o.order_id, p.product_name
FROM orders o
INNER JOIN product p
ON o.product_id = p.product_id;
✅ 只返回“能对应上商品”的订单
Inner Join 天然会过滤掉孤儿数据(无对应记录)。
例如:
SELECT COUNT(*)
FROM orders o
INNER JOIN user u
ON o.user_id = u.user_id;
常配合 GROUP BY 使用:
SELECT u.city, COUNT(o.order_id)
FROM user u
INNER JOIN orders o
ON u.user_id = o.user_id
GROUP BY u.city;
✅ 只统计“有订单的用户城市”
❌ 需要“主表全量数据”时
例如:
应使用:
LEFT JOINRIGHT JOINInner Join 适用于:只关心“两表都有匹配数据”的查询场景。
如果你愿意,我也可以用图示 / 对比 LEFT JOIN 帮你更直观地理解。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。