Mysql SQL外部联接在特定情况下的用途
有人能解释一下这两者之间的区别吗Mysql SQL外部联接在特定情况下的用途,mysql,Mysql,有人能解释一下这两者之间的区别吗 SELECT name FROM a.table LEFT OUTER JOIN b.table ON a.key = b.key; 及 我看不出有什么区别,因为两者在任何情况下都将返回表a.table中的所有名称。当b中的键上有多个匹配项时,带有联接的查询将返回name的重复副本 这两个查询不同。如果表A和表B之间的关系是一对一的,也就是说,表B中的“键”也是主键,因此与表“A”中的键一样是唯一的,那么这两个键是相等的 表A: Key Name
SELECT name
FROM a.table
LEFT OUTER JOIN b.table
ON a.key = b.key;
及
我看不出有什么区别,因为两者在任何情况下都将返回表a.table中的所有名称。当
b
中的键上有多个匹配项时,带有联接的查询将返回name
的重复副本
这两个查询不同。如果表A和表B之间的关系是一对一的,也就是说,表B中的“键”也是主键,因此与表“A”中的键一样是唯一的,那么这两个键是相等的 表A:
Key Name
---- --------------
1 George
2 Lisa
3 Bill
表B:
Key
----
1
3
Key
----
1
2
3
1
3
使用第一个查询的结果如下,与第二个查询相同:
Name
-------
George
Lisa
Bill
但是,如果关系是一对多的,即一个记录表A可以在表B中有一个或多个相关记录。这意味着表B中的“键”是外键,则两者不相等
表B:
Key
----
1
3
Key
----
1
2
3
1
3
使用第一个查询的结果将是:
Name
-------
George
George
Lisa
Bill
Bill
看我的你在两个测试表上测试过这个并检查了结果吗?@AcyclicTau。我一直使用连接。这就是他们的行为。很抱歉,评论是针对原始海报的,不是针对你的。