【发布时间】:2020-04-07 13:52:34
【问题描述】:
似乎 sqlite3 需要额外的信息来指定在连接两个表时要从哪里提取某些列。不知何故,当我尝试使用 join 子句执行 select 语句时,查询返回:
Error: ambiguous column name: name
即使我在语句中指定了要从中检索“名称”列的位置,在本例中是从表 t1:
select name from t1 join t2 on t1.name = t2.name where beer = 'Alesmith Decadence' and nickname = 'SUP';
那么 sqlite3 不理解这种格式还是什么?还是 sqlite3 需要更多信息才能理解此查询。
【问题讨论】:
-
选择 t.name 或 t2.name... 始终限定所有列(当涉及多个表时)是一种很好的 SQL 编码实践。
-
对,但我的意思是在这种情况下,我在 from 子句 no 上指定了我想从哪里检索列?
-
您的 FROM 有两个表,每个表都有一列
name。你必须指定你想要哪一个。