我正在尝试从不同的表中选择字段,并使用GROUP_CONCAT()分组行。但是,如果GROUP_CONCAT()中的一个字段返回NULL,则所选整行将为NULL。
'achievement'和'social'中的字段允许为空。每个个人资料中可能有多行成就和社交信息。
我尝试使用COALESCE更改查询,但没有成功:
SELECT p.UserId, p.Username, p.TextInfo, GROUP_CONCAT(DISTINCT CONCAT(COALESCE(a.Rank,''), '#', COALESCE(a.Tourney,''))) AS achievements, GROUP_CONCAT(DISTINCT CONCAT(COALESCE(s.platform,''),'#', COALESCE(s.URL,''))) AS socials from profile p INNER JOIN achievement a ON p.UserId = a.UserId INNER JOIN social s ON p.UserId = s.UserId WHERE p.Username LIKE '%uagib%'
预期结果:
<UserId> | <Username> | <TextInfo> | (multiple) <Rank>#<Tourney> | (multiple) <Platform>#<URL> |