在MySQL中JOIN
,ON
和之间有什么区别USING()
?据我所知,USING()
只是更方便的语法,而ON
当列名不相同时允许更多的灵活性.然而,这种差异是如此微小,你会认为他们只是消失了USING()
.
除此之外还有更多的东西吗?如果是,我应该在特定情况下使用哪个?
看起来似乎没有区别:
SELECT a.col1, b.col2
FROM table a JOIN table2 b
USING (col3)
Run Code Online (Sandbox Code Playgroud)
和
SELECT a.col1, b.col2
FROM table a JOIN table2 b
ON (a.col3 = b.col3)
Run Code Online (Sandbox Code Playgroud)
还是有吗?(当然除了ON
我可以使用不同的列名)
当两个表只有一个公共属性时,我可以理解自然连接是如何工作的.如果他们有两个怎么办?表1有3个属性:A,B,C表2有3个属性:A,B,D
表1中的前两行:
1 2 3
4 5 6
Run Code Online (Sandbox Code Playgroud)
表2中的前两行:
1 3 4
8 5 8
Run Code Online (Sandbox Code Playgroud)
两个表之间自然连接的结果是什么?
The most common type of join is: SQL INNER JOIN (simple join). An SQL INNER JOIN return all rows from multiple tables where the join condition is met.
这就是W3Schools关于Inner Join的内容.我正在阅读Korth的数据库管理,其中的一章是关系代数.在那里,有一个自然加入,在我有限的理解中,与内连接相同.
有人可以告诉我,如果两者之间存在差异,或者他们是指同一件事的不同名称.