gpt4 book ai didi

php - 在 mysql 中将行合并为一行

转载 作者:行者123 更新时间:2023-11-29 02:16:43 25 4
gpt4 key购买 nike

我在合并两个查询时遇到问题:一个

SELECT f.attribute_name, s.value as htc 
FROM attributes f
left join `car_type` c on f.type_id=c.id
left join mode m on m.id = f.mode_id
left join settings s on f.id=s.attr_id
where c.id=1 and f.mode_id = 1

在给出这个查询时,我得到了如下图所示的输出

enter image description here

SELECT f.attribute_name, s.value as ct
FROM attributes f
left join `car_type` c on f.type_id=c.id
left join mode m on m.id = f.mode_id
left join settings s on f.id=s.attr_id
where c.id=2 and f.mode_id = 1

对于第二个查询,我得到了如图所示的输出

enter image description here

我想在两个查询中属性名称相同的同一行中获取 ct 和 htc 值。

最佳答案

这好像是一个table pivot的问题,不知道行不行,试一下:

SELECT
f.attribute_name,
MAX(CASE WHEN c.id = 1 THEN s.value ELSE NULL END) AS htc,
MAX(CASE WHEN c.id = 2 THEN s.value ELSE NULL END) AS ct
FROM attributes f
LEFT JOIN `car_type` c ON f.type_id=c.id
LEFT JOIN MODE m ON m.id = f.mode_id
LEFT JOIN settings s ON f.id=s.attr_id
WHERE c.id IN (1,2) AND f.mode_id = 1
GROUP BY f.attribute_name

关于php - 在 mysql 中将行合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38452730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com