You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL查询获取包含洲与语言名称的国家数据对象?

实现包含洲和语言名称的Country数据对象查询

1. 数据库查询(SQL)核心实现

通过INNER JOIN关联三张表,同时给关联表的name字段设置别名,直接返回符合需求的字段结构:

SELECT 
  c.id,
  c.name,
  c.continent_id,
  c.language_id,
  cont.name AS continent,
  lang.name AS language
FROM countries c
INNER JOIN continents cont ON c.continent_id = cont.id
INNER JOIN languages lang ON c.language_id = lang.id

如果仅需查询单个国家(比如ID为1的德国),添加WHERE条件即可:

SELECT 
  c.id,
  c.name,
  c.continent_id,
  c.language_id,
  cont.name AS continent,
  lang.name AS language
FROM countries c
INNER JOIN continents cont ON c.continent_id = cont.id
INNER JOIN languages lang ON c.language_id = lang.id
WHERE c.id = 1;

2. 补充说明

  • 若需要包含无关联洲/语言记录的国家(比如continent_id为NULL的情况),可将INNER JOIN替换为LEFT JOIN;
  • 字段别名AS continent和AS language是为了直接匹配你需要的新字段名,避免与countries表的name字段冲突。

后端对象映射(可选)

如果后端需要将查询结果转为指定格式的对象,只需将SQL返回的字段对应到对象属性即可:

  • Python(Django/ORM):通过查询集的values()方法指定字段,或用序列化器映射别名;
  • Java(MyBatis):在ResultMap中配置字段与对象属性的对应关系,将continent和language别名映射到对象的对应属性。

内容的提问来源于stack exchange,提问作者Max Pattern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:35:17