MySQL如何在表中合并相似的记录

3

表格:

ID / 名称 / 类型 / 口感 / 得分

1 / Cox / 苹果 / 好 / NULL

2 / Cox / 梨子 / NULL / 6

3 / Bob / 苹果 / 极好 / NULL

4 / Rod / 梨子 / NULL / 9

5 / King / 梨子 / NULL / 3

6 / King / 苹果 / 差 / NULL

如上所示: “苹果”有一个“口感”值,但没有“得分” “梨子”没有“口感”值,但有“得分”。

我想将它们合并在一起,使得如果两条记录具有相同的“名称”,那么它们就成为一条记录,其中“口感”值来自苹果,“得分”来自梨子。

当使用上述表格时,我想要的输出结果是这样的:

ID / 名称 / 类型 / 口感 / 得分

1 / Cox / 苹果 / 好 / 6

3 / Bob / 苹果 / 极好 / NULL

4 / Rod / 梨子 / NULL / 9

5 / King / 梨子 / 差 / 3

我使用MySQL和PHP。我猜可以使用任何一种语言来实现。


你如何选择类型字段?(苹果/梨)? - Zahiro Mor
1个回答

2
您可以使用条件聚合来完成此操作:
SELECT min(t.id),t.name,min(t.Type),
       MAX(CASE WHEN t.type = 'apple' then t.taste END) as taste,
       MAX(CASE WHEN t.type = 'pear' then t.Score END) as Score 
FROM YourTable t
GROUP BY t.name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接