Две строки из таблицы отображаются как два разных столбца в другой таблице после объединения - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть такие таблицы:

Таблица A

tableA_key  BillToCustId SoldToCustId 
123         C1           C2    

Таблица Cust

ID Name Type
C1 ABC  Bill To
C2 XYZ  Sold To

, когда я присоединяюсь к таблице Cust с таблицей A и добавляю столбцы в запрос, который я хочу, чтобы решение выглядело так:

Таблица A

tableA_key  BillToCustId BillToName SoldToCustId SoldToName 
123         C1            ABC        C2           XYZ     

Что я получаю:

tableA_key  BillToCustId BillToName SoldToCustId SoldToName 
123         C1            (null)        C2           (null)

Вопрос в том, как две строки в Таблица Cust будет столбцами в таблице A?

1 Ответ

1 голос
/ 30 апреля 2020

Вы можете присоединиться дважды:

select 
    a.tablea_key,
    a.billToCustId,
    c1.name billToName,
    a.soldToCustId,
    c2.name soldToName
from tablea a
inner join cust c1 on c1.id = a.billToCustId
inner join cust c2 on c2.id = a.soldToCustId

Возможно, вы также захотите присоединиться к условиям на cust(type), например:

select 
    a.tablea_key,
    a.billToCustId,
    c1.name billToName,
    a.soldToCustId,
    c2.name soldToName
from tablea a
inner join cust c1 on c1.id = a.billToCustId and c1.type = 'Bill To'
inner join cust c2 on c2.id = a.soldToCustId and c1.type = 'Sold To'
...