sql查询left join on 后and 和 where 的区别

本文详细解析了SQL中左连接(left join)的ON和WHERE条件的区别及应用。通过实例展示了AND条件如何仅对右表生效,而WHERE则对整个查询结果进行筛选。适合初学者和进阶SQL学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

left join on 后and 条件查询

例子:SELECT a.FROM_TYPE ,a.USER_ACCOUNT userAccount
FROM hzzs_finance_money_flow_detail a LEFT JOIN hzzs_player_user b

ON a.USER_ID = b.ROW_ID AND a.FROM_TYPE = 10       =ON (a.USER_ID = b.ROW_ID AND a.FROM_TYPE = 10 )

解释:当ON 后采用 AND 进行连接时, and后边的条件其实是 与ON 后条件进行组装成一条,只对left join 后的表进行查询 

可以看到 AND a.FROM_TYPE = 10为条件时,也查出FROM_TYPE  = 20 的数据,这是因为 采用and进行查询条件时是组装在ON之后的查询条件的,假如此条件查询的是左表就不会起作用,假如此条件查询的是右表的话就会起作用  ,因为ON 后的条件只对右表起作用.     

cda9d2927ddc4a7f07940e3e0bf3e1e1ebf.jpg

left join on 后 where  条件查询

例子:SELECT a.FROM_TYPE ,a.USER_ACCOUNT userAccount
FROM hzzs_finance_money_flow_detail a LEFT JOIN hzzs_player_user b

ON a.USER_ID = b.ROW_ID  WHERE  a.FROM_TYPE = 10

使用wehere进行条件查询时,where 是对前面sql所查询出的表 再进行条件的筛选,

 

57293f161ced0e7dc8500b99b9d1c289fb9.jpg

总结

and作为条件是组装表时的sql

where 作为条件时 对查询出的表 再进行条件的筛选

 

转载于:https://my.oschina.net/u/3717819/blog/2221348

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值