mysql中的一行多连接结果

suzh9iv8  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(355)

我有如下3张table。
表“mansioni”:

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

表“dipendente”:商店id、名称和姓氏:

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

表dipendenti\u 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

我怎样才能得到我的结果?谢谢。。。

fcg9iug3

fcg9iug31#

添加连接到 mansioni 更换 t.id_mansionem.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

相关问题