LEFT JOIN Дублирование строк - PullRequest
0 голосов
/ 03 июля 2019

В таблице 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 )

enter image description here

* К этому можно присоединить идентификатор студента или номер банковского счета, но проблема одна и та же, независимо от того, как и идентификатор студента, и номер банковского счета # появляются в таблице 1` * 1036 несколько раз.*

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

С этим запросом:

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

Вы можете проверить демо 1011 *.

0 голосов
/ 03 июля 2019

В таблице 2 должен быть ключ таблицы 1 для нескольких записей.Для достижения того, что вы описываете, должно быть 1: 1.

...