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

SQLite3列名歧义问题:关联同一国家表查询世界杯赛事数据

解决SQLite关联同表两次的列名歧义问题

当两次内联countries表时,SQL无法区分两个表实例的country列,因此会抛出ambiguous column name: countries.country错误。核心解决方法是给每个关联的表设置别名,明确区分不同的关联逻辑。

正确的查询语句

SELECT 
    editions.year,
    host.country AS 主办国,
    champion.country AS 冠军国
FROM editions
INNER JOIN countries AS host ON editions.host = host.countries_id
INNER JOIN countries AS champion ON editions.champion = champion.countries_id;

说明

  • 给关联主办国的countries表起别名host,对应editions.host的外键关系
  • 给关联冠军国的countries表起别名champion,对应editions.champion的外键关系
  • 通过别名指定要查询的country列,同时用AS为结果列设置直观名称,避免列名混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:07:13