Внутреннее объединение SQL Server 2014 не работает - PullRequest
0 голосов
/ 07 мая 2018

Я пытался создать внутреннее соединение в SQL SERVER. В скрипте нет ошибки, но выход неверный. У меня есть две таблицы. один - WOPart, а другой - имя поля PartLocation.common - PartPK. Я бы хотел получить номер корзины WOPart (номер первичного ключа таблицы WOPart - 10109, который является WOPK) вместе с номером лота, который находится в таблице PartLocation.

Я сделал внутреннее соединение

SELECT W.PartPK,  P.Lot, W.Bin FROM WOPart W
    INNER JOIN PartLocation P
            ON W.PartPK = P.PartPK
   WHERE  W.WOPK=10109 

, а выход -

4   B1  c2
4   1   c2
7   A   NULL
4   B1  c2
4   1   c2
7   A   NULL

выход не правильный, потому что в таблице WOPart у нас четыре PartPK

4
7
4
7  

НО после внутреннего соединения показывает шесть PartPK. ПОЖАЛУЙСТА, помогите мне изменить мое внутреннее соединение

Таблица PartLocation enter image description here

WOPart стол enter image description here

1 Ответ

0 голосов
/ 07 мая 2018

Возможно, отдельный выбор даст вам ожидаемые результаты:

SELECT DISTINCT
    W.PartPK, P.Lot, W.Bin
FROM WOPart W
INNER JOIN PartLocation P
    ON W.PartPK = P.PartPK
WHERE W.WOPK = 10109;

Похоже, что в таблице PartLocation есть две записи со значением PartPK 4. Следовательно, запись PartPK=4 в WOPart дублируется (удваивается).

...