【100分在线等】这样使用Left JOIN有危险吗?
先说说我的用法吧
SELECT A.*, C.DisplayName FROM Table_A A LEFT JOIN TABLE_B B on A.id = B.Ref_A_ID LEFT JOIN Table_C C on B.Ref_C_ID = C.ID WHERE 1 = 1
先解释下为什么这么写: A 是主表,B是辅助表,B中有一个字段是引用C的PK.最后呈现出来的就是通过C进行一个ID到DisplayName的转换。
目前按照这么写满足了我的要求了:1 SQL语法满足 2 确实按照我的想法在工作。
但是我的疑惑就是 LEFT JOIN的用法。
A LEFT JOIN B,就是A和B做笛卡尔乘积,形成一个虚拟表,如果 LEFT JOIN C ON A.X = C.Y 这样也好理解,但是我这里写成B和C做Left JOIN?是不是意味着 A和B的结果不会受到C和B的影响呢?
SELECT A.*, C.DisplayName FROM Table_A A LEFT JOIN TABLE_B B on A.id = B.Ref_A_ID LEFT JOIN Table_C C on B.Ref_C_ID = C.ID WHERE 1 = 1
先解释下为什么这么写: A 是主表,B是辅助表,B中有一个字段是引用C的PK.最后呈现出来的就是通过C进行一个ID到DisplayName的转换。
目前按照这么写满足了我的要求了:1 SQL语法满足 2 确实按照我的想法在工作。
但是我的疑惑就是 LEFT JOIN的用法。
A LEFT JOIN B,就是A和B做笛卡尔乘积,形成一个虚拟表,如果 LEFT JOIN C ON A.X = C.Y 这样也好理解,但是我这里写成B和C做Left JOIN?是不是意味着 A和B的结果不会受到C和B的影响呢?
...全文
相关推荐
django foreignkey外键使用的例子 相当于left join
"本文主要介绍了如何在Django框架中使用外键(ForeignKey)来实现类似于SQL中的LEFT JOIN操作,以及如何创建和设置外键关联的模型和ModelForm。"在Django中,为
MySQL利用profile分析慢sql详解(group left join效率高于子查询)
本文主要介绍了如何使用MySQL的Profiler来分析慢SQL,并且通过对比GROUP BY LEFT JOIN与子查询的效率,展示了SQL优化的一种方法。在MySQL数据库管理中,当遇到性能
mysql Join使用以及优化
首先,Join操作的正确使用对于获取正确结果至关重要。基本的Join类型包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN等。
sql语句中join的用法
通过使用不同类型的JOIN操作,我们可以根据表之间的关系来灵活地组织数据。
MySQL中的JOIN详解及sql实战
JOIN与ON条件结合使用LEFT JOIN用于返回左表中的所有记录以及右表中匹配的记录。


疑难问题
