我正在尝试实现这个结果,“地点”表包含3种类型的地点(州、市、屠宰场)。我想根据“type”(枚举列)将它们显示为不同的列。
以下是我迄今为止尝试过的:
SELECT sifs.sif_id, places.`name` as city FROM sifs
INNER JOIN places ON sifs.city_id = places.id
union all
SELECT sifs.sif_id, places.`name` as slaughter FROM sifs
INNER JOIN places ON sifs.slaughter_id = places.id
union all
SELECT sifs.sif_id, places.`name` as state FROM sifs
INNER JOIN places ON sifs.state_id = places.id
查询结果如下:
sif_id | city
15 | Pedro Juan Caballero(PRY)
15 | FRIGONORTE
15 | Amambay(PRY)
我想要的是:
sif_id | state | city | slaughter
15 | Amambay(PRY)| Pedro Juan Caballero(PRY)| FRIGONORTE
表字段:
sifs:sif\u id,state\u id,city\u id,slaughter\u id地点:名称,类型('state','city','slaughter')
1条答案
按热度按时间mwngjboj1#
我想你想要多个
join
学生:它使用
LEFT JOIN
所以所有的行sifs
在结果集中,即使某些ID没有匹配项。