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 ; 

于是出现了重复. 

posted on 2019-01-05 14:12  小石头的一天  阅读(154)  评论(0编辑  收藏  举报