Один результат строки с множественным объединением в MySQL - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть 3 таблицы, подобные следующей.

Таблица "mansioni":

id_mansione | desc_mansione
    1       |   production
    2       |   office
    3       |   transport

Таблица "dipendente": идентификатор магазина, имя и фамилия:

id_dip | nome_dip | cognome_dip
 1     |  piero   | rossi
 2     |  marco   | rossi

Таблица dipendenti_iddip: сохранить связь между «dipendente» и таблицей «mansioni»

iddip_mansione |  num_mansione | id_mansione
       1       |        1      |     1
       1       |        2      |     2
       2       |        1      |     2
       2       |        2      |     3

Теперь мне нужен запрос, который даст мне такой результат:

id_dip |  nome_dip |  cognome_dip | mansione1 | mansione2 | mansione3
   1   |   piero   |    rossi     | production| office    | 
   2   |   marco   |    rossi     | office    | transport | 

Я прибылк следующему запросу, но при этом я могу видеть только поле "id_mansione", а не поле "desc mansione"

select i.id_dip,
       i.nome_dip,
       i.cognome_dip,
       max(case when t.num_mansione='1' then t.id_mansione end) Mansione1,
       max(case when t.num_mansione='2' then t.id_mansione end) Mansione2,
       max(case when t.num_mansione='3' then t.id_mansione end) Mansione3
from dipendente i
left join dipendenti_iddip t
  on i.id_dip = t.iddip_mansione
group by i.id_dip, i.nome_dip, i.cognome_dip

Как я могу получить свой результат?Спасибо ...

1 Ответ

0 голосов
/ 06 декабря 2018

Добавить объединение на mansioni и заменить t.id_mansione на m.desc_mansione

select i.id_dip,
       i.nome_dip,
       i.cognome_dip,
       max(case when t.num_mansione = '1' then m.desc_mansione end) Mansione1,
       max(case when t.num_mansione = '2' then m.desc_mansione end) Mansione2,
       max(case when t.num_mansione = '3' then m.desc_mansione end) Mansione3
from dipendente i
       join dipendenti_iddip t
            on i.id_dip = t.iddip_mansione
       join mansioni m on m.id_mansione = t.id_mansione
group by i.id_dip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...