我试图理解一些代码,并看到在这个查询中使用了“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给结果(其中Bs 列是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.