当前位置: 首页 > news >正文

SQL 第四篇:JOIN 实战(数据库到底是怎么“拼表”的)

一、前言

上一篇我们已经理解了:

user.id = user_detail.user_id

也知道了:

表关系,本质是相同字段值

但新的问题来了:


数据库怎么把两张表“拼”起来?

比如:

用户表 + 用户详情表

最后变成:

用户详情页

这一步,就是:

❗ JOIN


二、什么是 JOIN?

JOIN 可以理解成:

把多张表组合成一份业务数据

例如:


user 表

idusername
1zhangsan

user_detail 表

user_idreal_name
1张三

通过 JOIN 后:

idusernamereal_name
1zhangsan张三

三、第一条 JOIN SQL(必须记住)

SELECT u.id, u.username, d.real_name FROM user u LEFT JOIN user_detail d ON u.id = d.user_id;

这一句非常重要。

后面很多业务查询,本质上都是这个结构。


四、这一句 SQL 到底怎么读?

很多人第一次看 JOIN 会懵。

其实拆开就很简单。


五、SELECT(查什么)

SELECT u.id, u.username, d.real_name

表示:

最终返回哪些字段

六、FROM(从哪张表开始)

FROM user u

这里:

user

是主表。


u 是什么?

user u

等价于:

user AS u

意思是:

给 user 表起个别名

后面:

u.id

就表示:

user.id

七、LEFT JOIN(怎么拼)

LEFT JOIN user_detail d

表示:

把 user_detail 拼到 user 上

d 是什么?

和 u 一样:

表别名

所以:

d.real_name

表示:

user_detail.real_name

八、ON(拼接条件)

这一句最关键:

ON u.id = d.user_id

含义:

当 user.id 和 user_detail.user_id 相等时, 认为它们属于同一个用户

这一步,就是:

❗ JOIN 的核心


九、数据库到底怎么“拼表”?

本质上:

数据库会:


1️⃣ 先查 user

idusername
1zhangsan
2lisi

2️⃣ 再查 user_detail

user_idreal_name
1张三

3️⃣ 按 ON 条件匹配

u.id = d.user_id

于是:


user.id = 1

匹配:

user_detail.user_id = 1

拼成功。


user.id = 2

找不到:

user_detail.user_id = 2

十、LEFT JOIN 到底是什么意思?

LEFT JOIN 的核心:

❗ 左边表的数据全部保留


示例


user 表

idusername
1zhangsan
2lisi

user_detail 表

user_idreal_name
1张三

LEFT JOIN 结果

idusernamereal_name
1zhangsan张三
2lisiNULL

因为:

lisi 没有详情

但:

LEFT JOIN 会保留左表数据

十一、INNER JOIN 又是什么?

INNER JOIN 表示:

必须匹配成功才返回

INNER JOIN 结果

idusernamereal_name
1zhangsan张三

因为:

lisi 没有匹配到 user_detail

所以被过滤掉。


十二、企业里为什么更常用 LEFT JOIN?

因为业务里:

主数据一般必须保留

例如:


用户列表

即使:

用户没填资料

也必须显示用户。

所以:

LEFT JOIN 更常见

十三、真正的企业 JOIN(多表)

企业里经常会:

user + user_detail + user_address

一起查。


示例

SELECT u.id, u.username, d.real_name, a.receiver_name, a.phone, a.detail_address FROM user u LEFT JOIN user_detail d ON u.id = d.user_id LEFT JOIN user_address a ON u.id = a.user_id WHERE u.id = 1;

十四、这一句 SQL 的业务含义

其实就是:

查询用户详情页

包括:

  • 用户名
  • 真实姓名
  • 收货地址
  • 收货电话

👉 你会发现:

JOIN 开始真正服务业务了


十五、JOIN 的本质(一句话讲透)

❗ JOIN 本质不是“表拼接”

而是:

👉 根据相同字段值,组合业务数据


十六、这一篇真正的核心

这一篇最重要的不是:

LEFT JOIN INNER JOIN

而是:

❗开始理解:

“数据库怎么从多张表,拼成接口数据”


十七、一句话总结

JOIN 的核心:

👉 ON 条件决定“谁和谁是一组数据”


下一篇

SQL 第五篇:SQL 如何真正接入 Spring Boot 项目

我们会开始讲:

Mapper QueryMapper MyBatis-Plus XML Service

以及:企业里的 SQL 到底写在哪里

http://www.jsqmd.com/news/787478/

相关文章:

  • AGI驱动多模态AI在教育场景的应用实践与架构解析
  • 像素风健康应用开发:Vibe-Skills项目实战与设计解析
  • 如何用C语言解密网易云NCM音乐文件:实现跨平台音乐格式转换
  • AI编程助手代码审计工具whatdiditdo:从黑盒到白盒的智能复盘
  • 2026年口碑好的轻钢钢结构/钢结构构件/钢结构装配式建筑服务型公司推荐 - 品牌宣传支持者
  • CANN/pyasc:add_deq_relu API文档
  • 高速PCB设计中的EMI控制策略与实践
  • 2026年热门的苏州膜结构张拉膜棚/膜结构售后无忧公司 - 行业平台推荐
  • Zabbix AI技能实战:基于MCP协议实现自然语言监控运维自动化
  • 构建办公自动化CLI工具集:从Python库选型到实战应用
  • 【最新 v2.7.1 版本】OpenClaw v2.7.1 一键安装包|Windows 稳定极速部署
  • 构建AI模型路由框架:策略模式与统一端点抽象实践
  • BricksLLM:开源LLM API网关,解决大模型应用成本管控与用量追踪难题
  • ARM架构CSSELR_EL1寄存器:缓存管理与性能优化
  • 生成式AI在无障碍领域的应用:从技术潜力到工程实践
  • Syncia:基于浏览器扩展的AI助手,实现网页上下文智能处理与本地模型集成
  • 2026年靠谱的膜结构篮球馆棚/膜结构汽车棚可靠服务公司 - 行业平台推荐
  • 2026年电感生产厂家推荐,一体成型电感、扁平线圈大功率电感厂家优选指南! - 栗子测评
  • 拼多多股权曝光:腾讯持股13.8% 价值1319亿 是最大机构股东
  • 基于Claude AI的ASO自动化审计工具:从用户评论到文案优化的智能分析实践
  • CANN/AMCT Conv3dQAT算子
  • Go语言自动化管理OpenAI访问令牌:opaitokens库实战指南
  • OpenClaw资源导航:一站式构建AI智能体的中文开发者指南
  • CANN hixl LLM状态码
  • STM32调试与SWV跟踪实战指南
  • RAG技术大揭秘:从入门到高阶,助你构建智能问答系统!
  • AI+HPC协同加速固态电解质材料发现:以NaxLi3−xYCl6为例的实战解析
  • CANN/cannbot-skills 文档编写指南
  • 2026年4月优秀的二手衬四氟管道批发厂家推荐,二手对辊带式压榨机/二手衬塑铁罐,二手衬四氟管道批发厂家推荐 - 品牌推荐师
  • 2026年比较好的膜结构看台棚/膜结构汽车棚/张家港膜结构停车棚品质保障公司 - 品牌宣传支持者