Мне нужна помощь в присоединении к столам - PullRequest
0 голосов
/ 04 апреля 2020

Мне нужна помощь при соединении этих трех полей,

Таблица вечеринок, где хранится вся информация о вечеринке: это просто список Имени партии и ID. и это выглядит так:

PartyID PartyName
14      CIDS
15      DTL
16      CRTS
17      VIVAR
18      CT INC
19      AMC INC
20      YIBG
38      LLA INC
35      GFRC
43      UC AM    
44     CIDW
46       KIN TECH
47      MAIN RP
85      CCDS

У меня есть эта таблица Ответственная партия, как

  RPID  PID PartyID
   38   42   85

У меня есть эта таблица подпартий

SPID    RPID PartyID
14      38    43
15      38    44
16      38    45
17      38    45
18      38    46
19      38    47
20      38    47

Мне нужна ваша помощь при отображении мои данные как

RPID    PartyID  PartyName  SubID   SubParty
38       43      UCAM       14      CIDS    
38       44      CIDW       15      DTL
38       45                 16      CRTS
38       45                 17      VIVAR   
38       46    KIN TECH     18     CT INC
38       47                 20      YIBG
38       85     CCDS        

Ответы [ 2 ]

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

Вам необходимо присоединиться subparty к responsibleparty и 2 копиям party:

select sp.rpid, sp.partyid, p.partyname, sp.spid, pp.partyname subparty
from subparty sp
left join responsibleparty rp on rp.rpid = sp.rpid
left join party p on p.partyid = sp.partyid
left join party pp on pp.partyid = sp.spid

См. Демоверсию . Результаты:

> rpid | partyid | partyname | spid | subparty
> ---: | ------: | :-------- | ---: | :-------
>   38 |      43 | UC AM     |   14 | CIDS    
>   38 |      44 | CIDW      |   15 | DTL     
>   38 |      45 | null      |   16 | CRTS    
>   38 |      45 | null      |   17 | VIVAR   
>   38 |      46 | KIN TECH  |   18 | CT INC  
>   38 |      47 | MAIN RP   |   19 | AMC INC 
>   38 |      47 | MAIN RP   |   20 | YIBG 
0 голосов
/ 04 апреля 2020

Вы можете попробовать следующий запрос.

SELECT ResponsibleParty.RPID
    ,subParty.PartyKey AS PartyID
    ,party.PartyName
    ,PartyTable.PartyID AS SubID
    ,subPartyName.PartyName AS SubParty
FROM ResponsibleParty
INNER JOIN PartyTable ON ResponsibleParty.SPID = PartyTable.PartyID
INNER JOIN ResponsibleParty subParty ON subParty.SPID = PartyTable.PartyID
LEFT JOIN PartyTable party ON subparty.PartyKey = party.PartyID
LEFT JOIN PartyTable subPartyName ON ResponsibleParty.SPID = subPartyName.PartyID

Вот живое db <> fiddle demo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...