前言:很多人干了几年的开发,一直认为自己对连接很是理解,也包括我自己。下面几个示例,将教会大家,既简单又能深入理解SQL连接之间的关系
1、SQL之LEFT JOIN
含义:顾名思义,左连接以左表为主的连接。其返回左表中的所有记录和右表中连接字段相等的记录
2、SQL之RIGHT JOIN
含义:顾名思义,右连接以右表为主的连接。其返回右表中的所有记录和左表中连接字段相等的记录
3、SQL之INNER JOIN
含义:顾名思义,左连接以左表为主的连接。其返回左表和右表关联字段相等的行
示例:
A表:
aid name
1 张三
2 李四
3 王五
4 赵六
C表:
cid age
1 18
2 20
3 22
5 21
LEFT JOIN:
select * from A a left join C c on a.aid = c.cid
结果:
aid name cid age
1 张三 1 18
2 李四 2 20
3 王五 3 22
4 赵六 NULL NULL
结论:查询左表所有数据,右表不符合以NULL值显示
RIGHT JOIN:
select * from A a right join C c on a.aid = c.cid
结果:
aid name cid age
1 张三 1 18
2 李四 2 20
3 王五 3 22
NULL NULL 5 21
结论:查询右表所有数据,左表不符合以NULL值显示
INNER JOIN:
select * from A a rigth join C c on a.aid = c.cid
结果:
aid name cid age
1 张三 1 18
2 李四 2 20
3 王五 3 22
结论:只查询涉及到连表之间都符合的数据