SQL多表查询:内连接、外连接(左连接、右连接)、全连接、交叉连接

内连接 

select  a.*,b.*  from a inner join b  on  a.id = b.parent_id

结果:

Id

Name

ID

Job

Parent_Id

1

张三

1

教师

1

2

李四

2

工程师

2

 

 

 

 

 

 

左连接:保留左表记录,右表被筛掉的为NULL

select a.*,b.* from a left join b on a.id = b.parent_id   

结果:

Id

Name

ID

Job

Parent_Id

1

张三

1

教师

1

2

李四

2

工程师

2

3

王五

NULL

NULL

NULL

 

 

 

 

 

 

右连接:保留右表记录,左表被筛掉的为NULL

select a.*,b.* from a right join b on a.id = b.parent_id

结果:

Id

Name

ID

Job

Parent_Id

1

张三

1

教师

1

2

李四

2

工程师

2

NULL

NULL

3

农民

4

 

 

 

 

 

 全连接

select a.*,b.* from a full join b on a.id = b.parent_id

结果:

Id Name   ID Job Parent_Id
1 张三 1 教师 1
2 李四 2 工程师 2
NULL NULL 3 农民 4
3 王五 NULL NULL NULL

 

 

  

 

 

 

 

 

 交叉连接:表a的每条数据与表b每条数据依次匹配组合(笛卡尔积)a*b

select  a.*,b.*  from a cross join b  on  a.id = b.parent_id

结果:

Id Name ID Job Parent_Id
 1  张三  1  教师  1
 1  张三  2  工程师  2
 1  张三  3  农民  4
 2  李四  1  教师  1
 2  李四  2  工程师  2
 2  李四  3  农民  4
 3  王五  1  教师  1
 3  王五  2  工程师  2
 3  王五  3  农民  4

 

 

 

 

 

 

 

 

 

 

 扩展阅读>>

SQL多表查询:内连接、外连接(左连接、右连接)、全连接、交叉连接,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。