我有一个连接查询,在这里我离开了连接2个表,比如tab_sector和tab_sector_subdivisions。我在第一个表中有记录,在第二个表中可能有也可能没有相应的记录。我以这样的方式连接这些表,它应该返回第一个表中的所有行和第二个表中的匹配行。另外,如果第一个表中的行在第二个表中有多条记录,它应该作为GROUP_CONCAT(field_name)返回。但是我的查询没有以我需要的方式返回。
下面是不带GROUP_CONCAT的查询:
SELECT tab_sector.sector_id,tab_sector.sector_title,tab_sector.sector_desc,tab_sector.sector_image,tab_sector_subdivisions.subdiv_id
FROM tab_sector
LEFT JOIN tab_sector_subdivisions
ON tab_sector_subdivisions.sector_id = tab_sector.sector_id WHERE tab_sector.active = 'Y'结果是:

您可以看到id为20的两行。我需要的是单行,但是subdiv_id作为(19,20)。然后我在查询中使用GROUP_CONCAT,如下所示:
SELECT tab_sector.sector_id,tab_sector.sector_title,tab_sector.sector_desc,tab_sector.sector_image,GROUP_CONCAT(tab_sector_subdivisions.subdiv_id)
FROM tab_sector
LEFT JOIN tab_sector_subdivisions
ON tab_sector_subdivisions.sector_id = tab_sector.sector_id WHERE tab_sector.active = 'Y'那么结果将是:

我的另外两个记录在这里丢失了。我希望在我的结果中也有这几行。
有人能帮我解决这个问题吗?提前谢谢。
https://stackoverflow.com/questions/51172310
复制相似问题