假设有两张表,分别为表a和表b,
a:
id name nick_name
1 张三 张三
2 李四 李
3 王五 王五
b:
id age a_id
1 23 1
2 56 3
3 18 4
内连接:至少一个表中匹配即可,相当于取a和b的交集
SELECT a.name,b.age FROM a INNER JOIN b ON a.id = b.a_id;
结果:
name age
张三 23
王五 56
左外连接:返回左表里所有的行,即使右表里没有匹配
SELECT a.name,b.age FROM a LEFT JOIN b ON a.id = b.a_id;
name age
张三 23
李四 null
王五 56
右外连接:返回右表里所有的行,即使左表里没有匹配
SELECT a.name,b.age FROM a RIGHT JOIN b ON a.id = b.a_id;
name age
张三 23
null 56
王五 56
全外连接:只要一个表里有即可,相当于取a,b的并集
SELECT * FROM a FULL JOIN b;
id name id age a_id
1 张三 1 23 1
2 李四 1 23 1
3 王五 1 23 1
1 张三 2 56 3
2 李四 2 56 3
3 王五 2 56 3
1 张三 3 18 5
2 李四 3 18 5
3 王五 3 18 5
自连接:对a表进行自连接,即把一个表当做两个表来用
SELECT a1.name,a1.nick_name FROM a a1 INNER JOIN a a2 ON a1.name = a2.nick_name;
name nick_name
张三 张三
王五 王五

本文深入解析了SQL中的四种主要连接类型:内连接、左外连接、右外连接和全外连接,以及自连接的使用场景和操作方法。通过具体实例,展示了如何在不同情况下选择合适的连接方式,以实现数据的有效整合。

被折叠的 条评论
为什么被折叠?



