ON运算符SQL,它是什么?

时间:2013-06-06 14:17:26

标签: sql sql-server join

我正在尝试理解一些代码并看到在此查询中使用了“ON”运算符(使用sql server)。

SELECT A.*, B.UID
FROM Table1 A Left Outer Join
(SELECT ID FROM Table2) AS B ON A.ID= B.ID
...

这个运营商究竟做了什么?

4 个答案:

答案 0 :(得分:5)

ON代表一个或多个JOIN条件,我们可以通过这些条件将一个表中的记录与其他表匹配。

要了解联接如何在视觉上起作用,请阅读以下内容 -

答案 1 :(得分:3)

它不是运算符 - 它是JOIN部分,它是FROM clause

的一部分

它与WHERE子句非常相似 - 除了它只是为了过滤两个表(或行集)的连接。

在这种情况下,这是来自AB的行匹配的条件。如果WHERE子句中的条件相同,则会影响连接 - 允许LEFT JOIN(此处)在B中找不到匹配的行,但仍然从A贡献该行{1}}结果(B列为NULL)。如果您在WHERE中放置相同条件,则会强制联接变为INNER JOIN而不是LEFT JOIN

答案 2 :(得分:2)

您必须对JOIN语句中使用内联查询(SELECT ID FROM Table2)感到困惑。该查询可以写成:

SELECT A.*, B.UID
FROM Table1 A Left Outer Join Table2 B
ON A.ID = B.ID

答案 3 :(得分:1)

它表示字段之间的关联,以强制执行JOIN