没有表名的SQLite列名

| 在SQLite中查询数据库时,我发现为正在使用的表赋予别名很有用。它还有助于解决命名冲突。
SELECT a._id, a.name, b.email FROM people AS a, emails AS b
但是,当我在游标中查找列“ __id \”,“名称”和“电子邮件”时,出现一个错误,即找不到列。仅当我将查询更改为:
SELECT a._id AS \"_id\", a.name AS \"name\", b.email AS \"email\" FROM people AS a, emails AS b
是否有一种无需额外工作即可获取基本列名称的方法?
已邀请:
为列声明别名是避免错误的更好方法。您要查询的两个表可能具有相同的列名,没有别名可能很难区分它们。区分它们的唯一方法是将它们与表名相关联或给它们提供别名。 别名可以使查询更易于编写和阅读。您可以使用别名为表或列指定其他名称。如果表名或列​​名非常长或复杂,这可能是一件好事
从我阅读的内容来看,这似乎是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

要回复问题请先登录注册