首页 > 数据库 > SQL > 正文

SQL多表连接入门说明_SQL JOIN类型与用法解析

舞夢輝影
发布: 2025-12-04 19:45:48
原创
355人浏览过
SQL多表连接核心在于明确保留哪边数据及处理不匹配情况:INNER JOIN仅保留两边均有匹配的记录;LEFT JOIN保留左表全部记录,右表无匹配则填NULL;RIGHT JOIN与FULL JOIN使用较少,MySQL不支持FULL JOIN;自连接需用别名区分同一表的不同角色,多表连接应逐级明确ON条件。

sql多表连接入门说明_sql join类型与用法解析

SQL多表连接的核心,是通过关联字段把不同表的数据拼在一起查。关键不在记住所有JOIN名称,而在于理解“要保留哪边的数据”和“匹配不上怎么办”这两个问题。

INNER JOIN:只留两边都有的记录

这是最常用的连接方式,结果中每行数据在左表和右表里都必须有对应匹配项。如果某条订单没有对应的客户信息,这条订单就不会出现在结果里。

  • 写法简洁:可直接写 JOIN,默认就是 INNER JOIN
  • 条件写在 ON 后面,不是 WHERE(WHERE 是连接完再过滤)
  • 字段名重复时,必须用 表名.字段名 明确指定,比如 orders.user_idusers.id

LEFT JOIN:左边全保留,右边没匹配就填 NULL

想看所有用户,不管他们有没有下过订单,就用 LEFT JOIN。左表(users)的每一行都会出现,右表(orders)没匹配上的字段显示为 NULL。

  • LEFT 可以换成 LEFT OUTER JOIN,效果一样,“OUTER”通常省略
  • 注意方向:FROM users LEFT JOIN orders 表示以 users 为主
  • 如果后续加 WHERE 条件筛右表字段(如 WHERE orders.status = 'paid'),会把原本 NULL 的行也过滤掉——需要改成 AND orders.status = 'paid' 放在 ON 后面才对

RIGHT JOIN 和 FULL JOIN:用得少,但逻辑要清楚

RIGHT JOIN 就是 LEFT JOIN 换个方向,日常几乎不用,因为改写成 LEFT JOIN 更直观。FULL JOIN 返回左右两边所有记录,匹配不上的补 NULL,MySQL 不支持,PostgreSQL、SQL Server、Oracle 可用。

AIBox 一站式AI创作平台
AIBox 一站式AI创作平台

AIBox365一站式AI创作平台,支持ChatGPT、GPT4、Claue3、Gemini、Midjourney等国内外大模型

AIBox 一站式AI创作平台 224
查看详情 AIBox 一站式AI创作平台
  • MySQL 用户想实现类似 FULL JOIN 效果,得用 LEFT JOIN + RIGHT JOIN + UNION 拼接
  • 实际业务中,FULL JOIN 使用场景有限,多数时候用 LEFT 或 INNER 就够了

自连接和多表连接:一次查多个表不难

一张表可以自己连自己,比如查员工和直属上级的名字(都存在 employee 表里)。多表连接就是连续写 JOIN,每次 ON 一个关联条件。

  • 自连接要给表起别名,比如 e1 AS employeee2 AS manager
  • 三张表连接:FROM a JOIN b ON a.id = b.a_id JOIN c ON b.id = c.b_id
  • 别让 ON 条件串错关系,建议一边写一边画字段对应关系

基本上就这些。JOIN 不复杂但容易忽略细节,重点是动手试,用小数据验证结果是否符合预期。

以上就是SQL多表连接入门说明_SQL JOIN类型与用法解析的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号