表:
ID / Name / Type / Taste / Score
1 / Cox / apple / good / NULL
2 / Cox / pear / NULL / 6
3 / Bob / apple / great / NULL
4 / Rod / pear / NULL / 9
5 / King / pear / NULL / 3
6 / King / apple / bad / NULL
如您所见: 'apples' 有一个 'Taste' 值但没有 'Score' “梨”没有“味道”值,但有一个“分数”。
我想将它们合并在一起,这样如果两条记录具有相同的“名称”,那么它们将成为一条记录,其“味道”值取自苹果,“分数”取自梨。
当使用上表时,我想要的输出是这样的:
ID/姓名/类型/口味/分数
1/考克斯/苹果/好/6
3/Bob/apple/great/NULL
4/杆/梨/NULL/9
5/王/梨/坏/3
我正在使用 MySQL 和 PHP。我想这可以使用任何一个来完成。
最佳答案
您可以使用条件聚合来做到这一点:
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
关于php - mysql如何合并一个表中相似的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414821/