盯着这where or 终于出了点感觉

本文深入探讨了SQL中的AND和OR运算符在WHERE子句中的使用,通过实例展示了如何结合条件筛选数据,特别关注了左连接操作中条件重复出现的问题及解决思路。
AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

 

有两个表

这是ucbi表

 

这是cai表

 

SELECT
ucbi.Userid,
ucbi.Carid,
ucbi.rechargetime,
ucbi.Datetime
FROM
usercaridbindinfo ucbi
LEFT JOIN carauthinfo cai ON cai.Receiver = '15801377365'

应该会产生如下的中间表

WHERE
ucbi.Userid = '15801377365' or ucbi.Userid = cai.Userid;

出现了重复  是不是可以想成where 循环, 错误。需要重新定义

ucbi.Userid = '15801377365' or ucbi.Userid = cai.Userid;

拆分开  ucbi.Userid = cai.Userid; 有两条符合 13311069699 和 13311069600

ucbi.Userid = '15801377365' or ucbi.Userid = 13311069699 ;

ucbi.Userid = '15801377365' or ucbi.Userid = 13311069600 ;

where 一共是两次循环, 

第一次过滤 ucbi.Userid = '15801377365' or ucbi.Userid = 13311069699 ;

第二次过滤ucbi.Userid = '15801377365' or ucbi.Userid = 13311069600 ; 

于是出现了重复. 

转载于:https://www.cnblogs.com/zuochanzi/p/10224345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值