我正在尝试理解一些代码并看到在此查询中使用了“ON”运算符(使用sql server)。
SELECT A.*, B.UID
FROM Table1 A Left Outer Join
(SELECT ID FROM Table2) AS B ON A.ID= B.ID
...
这个运营商究竟做了什么?
答案 0 :(得分:5)
ON
代表一个或多个JOIN
条件,我们可以通过这些条件将一个表中的记录与其他表匹配。
要了解联接如何在视觉上起作用,请阅读以下内容 -
答案 1 :(得分:3)
它不是运算符 - 它是JOIN
的部分,它是FROM
clause
它与WHERE
子句非常相似 - 除了它只是为了过滤两个表(或行集)的连接。
在这种情况下,这是来自A
和B
的行匹配的条件。如果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
。