表1中的联接字段(fieldY)在此表中多次重复,尽管每行的总和都是唯一的。
当我尝试运行left join
时,我得到的行比预期多20倍。我尝试过运气不佳的解决方案this post。
我的期望是,如果没有联接,联接将产生与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中多次出现。
答案 0 :(得分:0)
表2必须在多个记录中具有表1的键。需要达到1:1才能实现您所描述的内容。
答案 1 :(得分:0)
使用此查询:
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
您可以检查demo。