select a.id
from test1 a
inner join test2 b on a.id=b.id
预期的输出不能是联接的结果,因为对于每个 a.id 中的所有匹配行 a 以及 b 已选定。第一排从 a 它将是两个匹配的行 b . 第二排从 a 它也将是来自的两个匹配行 b . 一共四排。 例如,可以在join之前将distinct应用于第二个表。
select a.id
from test1 a
inner join (select distinct b.id from test2 b) b on a.id=b.id
在这种情况下,表中的每一行 a 它将是表中的单个匹配行 b . 请参阅本课程以更好地了解连接:https://www.coursera.org/learn/analytics-mysql/lecture/kydcf/joins-with-many-to-many-relationships-and-duplicates
1条答案
按热度按时间i7uq4tfw1#
更好地使用ansi联接语法:
预期的输出不能是联接的结果,因为对于每个
a.id
中的所有匹配行a
以及b
已选定。第一排从a
它将是两个匹配的行b
. 第二排从a
它也将是来自的两个匹配行b
. 一共四排。例如,可以在join之前将distinct应用于第二个表。
在这种情况下,表中的每一行
a
它将是表中的单个匹配行b
.请参阅本课程以更好地了解连接:https://www.coursera.org/learn/analytics-mysql/lecture/kydcf/joins-with-many-to-many-relationships-and-duplicates