⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

SQL JOIN 详解

INNER/LEFT/RIGHT/FULL/CROSS JOIN 多表连接 · 难度:入门 · +20XP

SQL JOIN 深度解析 —— 七种连接方式

JOIN是SQL最强大的特性之一,但也是最容易被误解的。理解INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、CROSS JOIN以及它们的区别,是写出正确查询的基础。

七种JOIN

类型返回
INNER JOIN两表都匹配的行
LEFT JOIN左表全部行 + 右表匹配的行(不匹配为NULL)
RIGHT JOIN右表全部行 + 左表匹配的行
FULL JOIN两表所有行(MySQL不直接支持,用UNION模拟)
CROSS JOIN笛卡尔积(每行×每行)
SELF JOIN表自己连接自己(如员工-经理关系)
NATURAL JOIN自动按同名列连接(不推荐,隐式逻辑)

关键示例

-- LEFT JOIN:即使用户没有订单也显示
SELECT u.name, o.order_date
FROM users u LEFT JOIN orders o ON u.id = o.user_id;

-- 找出没有订单的用户(LEFT JOIN + IS NULL) SELECT u.name FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE o.id IS NULL;

动手练习

  1. 基础练习:创建用户表和订单表,用LEFT JOIN列出所有用户及订单数。
  2. 进阶应用:用自连接(SELF JOIN)查询每个员工及其直属上级。
  3. 项目实战:分析项目中使用JOIN的查询,确认JOIN类型选择正确。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0