sql语句:where和on,join连接

数据库在连接多个表,通过select查询返回结果时,都会生成一个临时表,然后再把这个表返回给用户。这里如要进行过滤的,可以用where或者on,他们两者的使用有些不同。

比如,Keys表

Sections表

两个表含有同个字段SectionID

当我们需要从这2个表查找含有相同字段的记录时,使用select * from Keys , Sections on Keys.SectionId=Sections.SectionID,或者使用select * from Keys , Sections where Keys.SectionId=Sections.SectionID,就是直接两个表名,中间以逗号分隔,两种语句的输出结果都是一致。

而如果使用join连接,

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 
inner join(等值连接) 只返回两个表中联结字段相等的行

比如left join左连接,这时如用on后面加判断语句就不起作用,如用where则还会根据判断语句的真假进行返回。

其他的join连接,还有right join右连接是从右边的表中返回所有记录,full join是返回两个表的并集,也是一样的情况,这里不再叙述。只有一个inner join就是等值连接,返回两个表中字段相等的记录,才返回跟where相同的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值