一张图让你彻底搞懂SQLJOIN!
程序员八哥
2025-02-18 10:58:18
在数据库查询中,JOIN 是最常用的操作,但你真的清楚 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 的区别吗?今天用一张图,帮你一次性搞懂!🚀
1️⃣ INNER JOIN(内连接)
✅ 只返回 A 和 B 都有的数据,不匹配的会被过滤掉。
📌 适用场景:找出既有用户信息,又有订单记录的用户。
2️⃣ FULL JOIN(全连接)
✅ 返回 A 和 B 的所有数据,如果没有匹配,则填充 NULL。
📌 适用场景:列出所有用户和所有订单,即使部分用户未下单或部分订单找不到用户。
3️⃣ FULL JOIN + 过滤(找不同)
✅ 只返回 A 和 B 没有匹配的数据。
📌 适用场景:找出没有订单的用户 或 没有匹配用户的订单。
4️⃣ LEFT JOIN(左连接)
✅ A 表所有数据都保留,B 表没有匹配的部分填 NULL。
📌 适用场景:查询所有用户,即使他们没有下单。
5️⃣ LEFT JOIN + 过滤(找 A 独有数据)
✅ 只返回 A 中没有匹配 B 的数据。
📌 适用场景:找出还未购买商品的用户。
6️⃣ RIGHT JOIN(右连接)
✅ B 表所有数据都保留,A 表没有匹配的部分填 NULL。
📌 适用场景:查询所有订单,即使订单没有匹配到用户。
7️⃣ RIGHT JOIN + 过滤(找 B 独有数据)
✅ 只返回 B 中没有匹配 A 的数据。
📌 适用场景:找出没有绑定用户的订单。
🎯 总结
✅ 查交集?INNER JOIN!
✅ 要所有数据?FULL JOIN!
✅ A 全部保留?LEFT JOIN!
✅ B 全部保留?RIGHT JOIN!
✅ A 里没有 B 的?LEFT JOIN + 过滤!
✅ B 里没有 A 的?RIGHT JOIN + 过滤!
SQL JOIN 让数据查询更精准,记住这些区别,轻松应对多表查询!💡 你最常用的是哪种 JOIN?评论聊聊!🚀 伦敦纽约硅谷创业荷兰GPTAiApp开发flutter软件外包软件开发
0
阅读:1