sql-server-command

谈一谈join的用法(运行环境sql-Server)

输入对象两张表和约束条件
输入对象满足条件的表

  • inner join = join

可以把table1作为参考,去table2中查找满足条件的元祖,合并成一条元祖;也可以把table2作为参考,去
table1中找满足条件的元祖,然后进行拼接,也就是table1和table2的地位是一样的。如果在另一张表中没有满足条件的,则本元祖作废。
语法:

1
select * from table1 join table2 on condition

或者

1
select * from table1 inner join table2 on conditon

  • left join

把table1作为参考,到table2中寻找满足条件的,找到的话拼接,找不到则把未找到的置为NULL,table1和table2的地位不同。

1
select * from table1 left join table2 on condition

  • right join

把table2作为参考,到table1中寻找满足条件的,找到的话拼接,找不到则把未找到的置为NULL,table1和table2的地位不同。

1
select * from table1 right join table2 on condition

  • full join

left join左边的全部保留,right join右边的全部保留,full join全部保留,不能进行拼接的元祖用NULL进行拼接。

1
select * from table1 full join table2 on condition


各种join的用法就是我们怎样对待不能拼接的元祖,和如何看待table的地位。