使用多个froms和join之间的区别是什么?

时间:2009-05-09 10:11:09

标签: sql join

说我有这个问题:

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

为什么我会使用加入?那会是什么样子?

3 个答案:

答案 0 :(得分:3)

连接是synticatic糖,更容易阅读。

您的查询看起来像是这样的:

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

通过使用两个以上的表,通过在一个位置保持与表相关的条件,联接可以使查询更具可读性。

答案 1 :(得分:2)

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 joinright outer joinfull join,使用旧语法更难实现。

答案 2 :(得分:0)

Join语法允许外连接,所以你可以去:

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