表 1 的连接字段 (fieldY) 在该表中重复多次,尽管每一行总体上都是唯一的。
当我尝试运行
left join
时,我得到的行数比预期多 20 倍。我尝试使用解决方案这篇文章但没有运气。
我的期望是,连接将产生与没有连接的 table1 完全相同的行数。连接只会再增加一列 (
fieldX
)
有什么想法吗?
SELECT
table1.*, table2.fieldZ
FROM
table1
LEFT JOIN
table2
ON
table2.fieldX = table1.fieldY
WHERE
criteria1 = '01/01/2019'
AND
criteria2 > '0'
ORDER BY
criteria2
在下面的照片中:
fieldz
=Routing #
fieldX
= Bank Account #
(来自表2)fieldY
= Bank Account #
(来自表1)
*这可以加入学生证或银行账号,但问题都是一样的,因为学生证和银行账号在表1中出现了多次`
Table2 必须具有表 1 的多个记录的键。 需要 1:1 才能实现您所描述的目标。
通过此查询:
select t1.*, t2.routing
from table1 t1 left join table2 t2
on t2.studentid = t1.studentid
或者这个:
select t1.*, t2.routing
from table1 t1 left join table2 t2
on t2.bankaccount = t1.bankaccount
您将得到以下结果:
> studentid | bankaccount | gpa | semester | routing
> --------: | ----------: | ---: | :------- | :------
> 1 | 123456 | | Fall | abc
> 1 | 123456 | | Spring | abc
> 1 | 123456 | | Summer | abc
> 2 | 456789 | | Fall | def
> 2 | 456789 | | Spring | def
> 2 | 456789 | | Summer | def
> 3 | 321654 | | Fall | ghi
> 3 | 321654 | | Spring | ghi
> 3 | 321654 | | Summer | ghi
您可以查看演示。