代码之家  ›  专栏  ›  技术社区  ›  Thomaschaaf

只使用多个From和Join有什么区别?

  •  3
  • Thomaschaaf  · 技术社区  · 15 年前

    假设我有这个问题:

    SELECT bugs.id, bug_color.name FROM bugs, bug_color
        WHERE bugs.id = 1 AND bugs.id = bug_color.id
    

    为什么要使用联接?它会是什么样子?

    3 回复  |  直到 15 年前
        1
  •  3
  •   Andomar    15 年前

    连接是语法上的糖,更容易阅读。

    您的查询如下所示:

    SELECT bugs.id, bug_color.name 
    FROM bugs
    INNER JOIN bug_color ON bugs.id = bug_color.id
    WHERE bugs.id = 1
    

    对于多于两个表,join通过将与表相关的条件保持在一个位置,有助于提高查询的可读性。

        2
  •  2
  •   Guffa    15 年前

    这个 join 关键字是联接表的新方法。

    当我学习到SQL时,它还不存在,所以连接是按照您在问题中显示的方式进行的。

    现在,我们有了连接和别名这样的东西来提高查询的可读性:

    select
        b.id, c.name
    from
        bugs as b
    inner join
        bug_color as c on c.id = b.id
    where
        b.id = 1
    

    还有连接的其他变体,如 left outer join , right outer join full join 这很难用旧语法完成。

        3
  •  0
  •   Joe Albahari    15 年前

    联接语法允许外部联接,因此可以执行以下操作:

    SELECT bugs.id, bug_color.name 
    FROM bugs, bug_color 
    LEFT OUTER JOIN bug_color ON bugs.id = bug_color.id
    WHERE bugs.id = 1