我试图理解一些代码,并看到在这个查询中使用了“ON”运算符(使用 sql server)。
SELECT A.*, B.UID
FROM Table1 A Left Outer Join
(SELECT ID FROM Table2) AS B ON A.ID= B.ID
...
这个运营商具体是做什么的?
我试图理解一些代码,并看到在这个查询中使用了“ON”运算符(使用 sql server)。
SELECT A.*, B.UID
FROM Table1 A Left Outer Join
(SELECT ID FROM Table2) AS B ON A.ID= B.ID
...
这个运营商具体是做什么的?
ON
represents one or more JOIN
conditions by which we could match records from one table to other.
For understanding how joins works visually, read following -
它不是运算符 - 它是 a 的一部分,JOIN
它是FROM
子句的一部分
它与子句非常相似WHERE
——除了它仅用于过滤两个表(或行集)的连接。
在这种情况下,它是来自A
和B
的行匹配的条件。如果您在WHERE
子句中有相同的条件,它会影响连接 - LEFT JOIN
(此处)允许在其中找到没有匹配的行,B
但仍将该行贡献A
给结果(其中B
s 列是NULL
)。如果您在 中放置相同的条件WHERE
,它会强制连接变为 anINNER JOIN
而不是 a LEFT JOIN
。
您一定会对在 JOIN 语句中使用内联查询(SELECT ID FROM Table2)感到困惑。查询可以写成:
SELECT A.*, B.UID
FROM Table1 A Left Outer Join Table2 B
ON A.ID = B.ID
它表示字段之间的关联,以强制执行JOIN
.