两种表连接方法有什么不同?

这两种表连接有什么区别?

Select *
From 表1,表2,表3
Where 表1.字段=表2.字段
And 表2.字段=表3.字段

和普通的left jion表有什么区别

前者返回根据where条件都能关联到的数据。
后者是返回左边表里所有记录,右边表里根据on条件能关联到就关联,关联不到就空着。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    当你使用表1.字段=表2.字段 AND 表2.字段=表3.字段这种方式连接3张表时,实际上是建立了两个连接(表1与表2,表2与表3)。

    这种连接方式又称为连锁连接(Chained joins),也就是依次连接多个表。

    而普通的left join连接方式则是将多张表一次性连接,找出两个表中相同的字段,然后将它们以行的形式合并在一起。

    下面是这两种连接方式的代码实现。

    连锁连接方式:

    SELECT *
    FROM table1
    JOIN table2 ON table1.field = table2.field
    JOIN table3 ON table2.field = table3.field;
    

    left join连接方式:

    SELECT *
    FROM table1
    LEFT JOIN table2 ON table1.field = table2.field
    LEFT JOIN table3 ON table2.field = table3.field;
    

    当然,用哪种连接方式最终要根据具体的需求和数据情况来决定。在某些情境下,连锁连接方式可能比传统的left join效率更高,但在其他场合下则不尽然了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

第一种你所查询出的数据是根据 表3已知参数等于表2已知参数 和(and) 表2已知参数等于表1已知参数 最终显示出表1所有符合要求的数据,第二种左连接是可以显示出表1+表2+表3的所有符合要求的数据 最终以表1为主表,如果表1关联不到2和3表 那么2和3表的参数就为null