MariaDB关联中间表查询:如何显示关联表中的名称字段而非ID
解决方法:直接关联宏观区域表获取名称
不用新建额外的表哦!你只需要在现有查询的基础上,再关联一次macroregions_list表,就能直接拿到name_macroreg字段了。
修改后的完整SQL查询
SELECT -- 替换成你实际需要展示的Site字段(比如site_list里对应的站点名称字段) site_list.your_site_field AS 'Site', -- 替换成Region_name对应的实际字段(比如regions表的区域名称字段) regions.your_region_name_field AS 'Region_name', -- 现在可以直接获取宏观区域的名称了 mr.name_macroreg AS 'Macroregion', -- 其他你需要展示的字段... FROM plant_remains -- 关联样本到站点表 INNER JOIN site_list ON plant_remains.uuid = site_list.bot -- 补充关联regions表(原查询里用到了r.region_id,所以这里需要加上) INNER JOIN regions r ON site_list.region_id = r.region_id -- 关联到宏观区域中间表 INNER JOIN macroregions_join mj ON r.region_id = mj.id_region -- 新增:关联宏观区域列表表,获取名称 INNER JOIN macroregions_list mr ON mj.id_macroregion = mr.id_macroreg
关键说明
- 核心新增的是最后一行
INNER JOIN macroregions_list mr ON mj.id_macroregion = mr.id_macroreg:利用中间关联表macroregions_join里的id_macroregion,去匹配macroregions_list表的主键id_macroreg,这样就能直接拉取对应的name_macroreg字段。 - 记得把
SELECT语句里原来的id_macroregion替换成mr.name_macroreg,并设置你想要的别名。 - 原查询里用到了
r.region_id但没有关联regions表,所以我补充了这一行,如果你的实际查询中已经包含了这个关联,可以直接跳过。
内容的提问来源于stack exchange,提问作者Roberto
相关产品推荐
相关产品推荐

