在SQLite中查询数据库时,我发现为我正在使用的表提供别名很有用。它还有助于解决命名冲突。
SELECT a._id, a.name, b.email FROM people AS a, emails AS b
然而,当我在光标中查找“_id”,“name”和“email”列时,出现无法找到列的错误。它仅在我将查询更改为:
时才有效SELECT a._id AS "_id", a.name AS "name", b.email AS "email" FROM people AS a, emails AS b
有没有办法在没有额外工作的情况下获取基本列名称?
答案 0 :(得分:2)
声明列的别名是避免错误的更好方法。您的查询的两个表可能具有相同的列名,并且在没有别名的情况下很难区分它们。区分它们的唯一方法是将它们与表名相关联或给它们别名。
别名可以使查询更容易编写和读取。您可以使用别名为表或列指定其他名称。如果您有非常长或复杂的表名或列名
,这可能是一件好事答案 1 :(得分:0)
从我读过的内容来看,这似乎是一个特定于SQLite的问题。
SQLite(目前)没有制作任何内容 有关列名的承诺 省略AS子句的查询。如果 你使用AS子句,然后是 列名保证是 AS右侧的标签。如果你 省略AS子句,然后是列 名称可能会从一个版本更改 SQLite到下一个。
- http://old.nabble.com/Aliasing-and-columns-names-td18382558.html
我建议只在有冲突的列上使用表名别名。例如,在上面的示例中,如果_id是唯一具有冲突的列:
SELECT a._id AS _id, name, email FROM people AS a, emails