什么使得给定的表成为左表?
该表是否在查询的"发件人"部分中指示?
或者,它是左表,因为它位于=运算符的左侧?
以下是等效的
SELECT *
FROM left_table
LEFT JOIN right_table ON left_table.right_id = right_table.id
Run Code Online (Sandbox Code Playgroud)
和
SELECT *
FROM left_table
LEFT JOIN right_table on right_table.left_id = left_table.id
Run Code Online (Sandbox Code Playgroud)
???
谢谢
Pau*_*ier 41
Left表是select中的第一个表.是的,你的两个例子是等价的.
mbi*_*ard 10
右表始终是您要加入的表.所以是的,你的两个陈述都是等同的.
JOIN [Table] ON ...
Run Code Online (Sandbox Code Playgroud)
[表]始终是正确的表格.
大致"左"是从左到右阅读整个FROM子句中首先出现的所有内容的结果 - 包括其他JOIN,子查询,VIEW和STORED PROCEDURES的结果.
两个SQL语句都是等价的,因为子句部分的=运算符是对称的(如果a = b然后b = a),那么无论顺序如何,结果都是相同的.ONJOIN
常规连接仅显示JOIN的ON子句为真的行,而如果条件为假,LEFT JOIN还显示"left"的记录(对于SELECT中存在的"right",任何列显示NULL).
例如:
-- People: -- Car
id | name owner_id | model
---+------------ ---------+------------
1 | Paul 1 | Ferrari
2 | Nancy 2 | Porsche
3 | Arthur NULL | Lamborghini
4 | Alfred 10 | Maserati
> select people.name, car.model from people join car on car.owner_id=people.id;
name | model
---------+--------------
Paul | Ferrari
Nancy | Porsche
2 record(s) found
> select people.name, car.model from people left join car on
car.owner_id=people.id;
name | model
---------+--------------
Paul | Ferrari
Nancy | Porsche
Arthur | NULL
Alfred | NULL
4 record(s) found
> select people.name, car.model from people left join car on
people.id = car.owner_id;
name | model
---------+--------------
Paul | Ferrari
Nancy | Porsche
Arthur | NULL
Alfred | NULL
4 record(s) found
Run Code Online (Sandbox Code Playgroud)
看到此链接可以很好地了解联接:http : //en.wikipedia.org/wiki/Join_(SQL)
是的,这两个语句是等效的:-)