SQL内部连接顺序
如果我有一个主键为SQL内部连接顺序,sql,Sql,如果我有一个主键为w的表a,主键为x的表B,外键为a.w,则称为y,还有一个字段z。以下查询之间有什么区别: SELECT w, x, y, z FROM A INNER JOIN B ON A.w = B.y WHERE B.z = SomeValue 及 如果B.z和B.y是复合主键,是否仍有区别 如果没有区别,哪种代码更标准 两个给定的查询之间没有区别。对于内部联接,不,顺序不重要。对于(左、右或全)外部联接,是的,顺序很重要 有关详细信息,请参阅线程。这两个查询之间没有区别。内部联接的
w
的表a
,主键为x
的表B
,外键为a.w
,则称为y
,还有一个字段z
。以下查询之间有什么区别:
SELECT w, x, y, z FROM A INNER JOIN B ON A.w = B.y WHERE B.z = SomeValue
及
如果B.z
和B.y
是复合主键,是否仍有区别
如果没有区别,哪种代码更标准
两个给定的查询之间没有区别。对于内部联接,不,顺序不重要。对于(左、右或全)外部联接,是的,顺序很重要
有关详细信息,请参阅线程。这两个查询之间没有区别。
内部联接的操作数顺序不影响结果,也不应影响执行计划。您使用的是哪种DBMS?博士后?Oracle?若要了解这是否有任何影响,请检查执行计划。@a_horse_和_no_名称duplicate是错误的,问题是关于1 join的参数顺序(可交换性),但副本是关于多个join的顺序(关联性)。(我正在寻找一个合适的副本,请让我知道你有一个。到目前为止最老的是2013年。)它们中的任何一个会更好的编程风格吗?请查看我的更新答案。:)
SELECT w, x, y, z FROM B INNER JOIN A ON A.w = B.y WHERE B.z = SomeValue