【发布时间】:2016-11-02 01:27:22
【问题描述】:
如果我有以下情况:
**table 1
person| money
A | 2
B | 10
-------------
**table 2
person| cars
A | 3
C | 10
---------------
两者有什么区别?
SELECT * FROM table1 NATURAL LEFT OUTER JOIN table2;
产生:
person| money |cars
A | 2 |3
B | 10 |NULL
---------------
对
SELECT * FROM table1 LEFT OUTER JOIN table 2 ON person
【问题讨论】:
-
自然连接会推断连接列,并从结果集中移除重复的连接列。
-
我不认为你的非
NATURAL版本是有效的语法。您的意思是使用USING而不是ON?例如SELECT * FROM table1 LEFT OUTER JOIN table2 USING ( person )?table 2中的空格也似乎是一个错字。 -
@TimBiegeleisen:我不同意它是重复的:例如如果不使用范围变量,您将无法回答其他问题(这有点像自然连接点,顺便说一句),而 OP 在这个问题中没有使用范围变量。
标签: mysql database outer-join natural-join