如何在MYSQL中有空值的GROUP_CONCAT将来自LEFT JOIN的字段?

问题描述 投票:0回答:1

这与我之前提交的here示例问题有关。我有以下sql查询:

SELECT 
listings.*,
region.REGION_ID,
#GROUP_CONCAT(region.REGION_ID) AS GROUP_IDs,
......
......
INNER JOIN schedule ON schedule.SCHEDULE_ID = listings.LISTING_SCHEDULE_ID 
LEFT JOIN listing_region ON listing_region.LIST_REGION_LISTING_ID = 
listings.LISTING_ID 
......
......
WHERE listings.LISTING_ID IN 
(SELECT LISTING_ID FROM listings WHERE ..........

结果如下:

Raw data without GROUP_CONCAT

对于相同的ListingID,我获得多个RegionID,对于来自LEFT join的不存在的记录,rest为null(预期)。

现在我需要将region_Ids分组为相同的清单ID。

所以我做的唯一改变就是注释掉“region.REGION_ID”并启用“GROUP_CONCAT(region.REGION_ID)AS GROUP_IDs”。

结果如下:

Results with GROUP_CONCAT

我不明白为什么现在删除空行。我想要它们...!我应该在这里纠正什么?

mysql group-concat
1个回答
0
投票

我应该做的唯一更改Add:GROUP BY ListingID到main filter子句。

© www.soinside.com 2019 - 2024. All rights reserved.