SQL语句值left join,right join,inner join的用法

sql语句中两表连结方式主要有一下3中,需要注意的时在进行多表连结的时候必须要用 on 指定表中的某个字段作为连结的条件

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 -----结果集的条目数以左表为准
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录------结果集的条目数以右表为准
inner join(等值连接) 只返回两个表中联结字段相等的行------结果集的条目数为联结字段相等的行数


看一下例子

Table_1

1             t1            张三            男         
2             t1            小白            女         
3             t1            王子            男         
4             t1            王小            女         
5             t1            李白            男         
6             t1            赵虎            男         
7             t1            张果            女        


-----------------------------------------------------------------------------------------

Table_2

1             t2            王五        
2             t2            小五        
4             t2            王五        
5             t2            赵雪        
8             t2            张龙       
  

------------------------------------------------------------------------------------------

left join

select * from Table_1 left join Table_2 on Table_1.ID = Table_2.ID

结果是:

1             t1            张三            男             1             t2            王五        
2             t1            小白            女             2             t2            小五        
3             t1            王子            男             NULL    NULL    NULL
4             t1            王小            女             4             t2            王五        
5             t1            李白            男             5             t2            赵雪        
6             t1            赵虎            男             NULL    NULL    NULL
7             t1            张果            女             NULL    NULL    NULL

--------------------------------------------------------------------------------------------

right join

SELECT * FROM Table_1 right join Table_2 on Table_1.ID = Table_2.ID

结果是:

1             t1            张三            男             1             t2            王五        
2             t1            小白            女             2             t2            小五        
4             t1            王小            女             4             t2            王五        
5             t1            李白            男             5             t2            赵雪        
NULL      NULL      NULL         NULL         8             t2            张龙       

--------------------------------------------------------------------------------------------

inner join

select * from Table_1 inner join Table_2 on Table_1.ID=Table_2.ID

结果是:

1             t1            张三            男             1             t2            王五        
2             t1            小白            女             2             t2            小五        
4             t1            王小            女             4             t2            王五        
5             t1            李白            男             5             t2            赵雪       

----------------------------------------------------------------------------------------------

 总结:left join与right join 的区别主要是在于基础表是左表还是右表,对于不满足基础表联结字段的行将会有null填充   

 语法:from Table_1 LEFT JOIN Table_2 ON Table_1.columnName compopr Table_2.columnName
columnName必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
compopr指定的运算符有:"=", "<", ">", "<=", ">=" 或 "<>"

----------------------------------------------------------------------------------------------

这次先分享到这里,有不完整之处还请广大网友进行补充,过段时间再分享多表联结查询不重复的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值