SQL 中 Left Join vs Right Join 用法_sql中 Left Join 与 Right Join 对比技巧

严格来说,LeftJoin 和 RightJoin 之间的唯一区别是数据应该被保留。
其实很简单。
LeftJoin 处理左表,RightJoin 处理右表。
然而,使用 LeftJoin 的人还有很多。
如果使用不当,逻辑很容易被扭曲。

我们先来说说最重要的事情。
LeftJoin 保留左表中的所有记录,即使右表中没有匹配项。
去年我们做了这个电商项目,统计了所有的用户使用记录。
即使从来没有人买过它。
我们仍然需要使用LeftJoin。
结果中没有订单的客户订单列为NULL。
RightJoin 则相反。
例如,如果您检查所有订单及其客户。
即使订单是退货单并且没有客户。
您仍然需要使用 RightJoin。
结果,没有客户的订单的客户列将为 NULL。
有一个非常重要的细节。
例如,“未下单的用户”的情况,LeftJoin可以直接处理,但RightJoin会失败。

一开始我以为RightJoin很高级,后来发现不对。
它的大部分情况可以通过改变表顺序LeftJoin来解决。
例如,RIGHT JOIN B ON A.id=B.a_id TO LEFT JOIN A ON B.a_id=A.id可以直接更改。
以后看书更方便。

最后一个警告:不要过滤orders.order_id为NULL的LEFTJOIN右表字段,这会将LeftJoin直接转换为InnerJoin。
说实话,比较复杂,而且测试过程中很容易泄露。

sql中join的几种常见用法总结

是的,JOIN意味着表的联姻,INNERJOIN意味着匹配两个表中的字段。

LEFTJOIN 与左边的对一样,无论右边有没有对,都先站。

RIGHTJOIN 另一方面,无论右边有没有左边,你都站在第一。

Nested JOIN是多级联姻,用于嵌套。

JOIN组合是INNERJOIN,里面有LEFTJOIN或RIGHTJOIN,非常灵活。

底线是 INNERJOIN 查找匹配项,LEFTJOIN 和 RIGHTJOIN 确保全面性,嵌套和组合 JOIN 执行复杂查询。
使用正确的 JOIN,数据就会出现。
亲自看看,什么是正确的 JOIN?