SQL - 提示引用列

新手上路,请多包涵

我是 SQL 的初学者,所以如果这个问题很原始,我很抱歉。

我刚开始学习 http://www.w3schools.com 的教程,所以下载了“Northwind”数据库来尝试使用它,并使用 pgAdmin 3 控制台访问数据库。我只是尝试了简单的命令来选择表的一列,但它给出了与任何表中的任何列相同的以下消息

LINE 1: select City from Customers;
                        ^
HINT:  Perhaps you meant to reference the column "customers.City".

我想问一下我的命令有什么问题吗?以及如何解决?

谢谢

原文由 philippos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 457
2 个回答

当您导入此“Northwind”数据库列名时,已在 CamelCase 中导入 - 您的导入必须在 create table 查询的列标识符中添加双引号。

这是相当不幸的,因为这会导致您还必须在所有查询中引用它们,例如:

 select "City" from customers;

为了保持理智,我建议您 将所有列重命名为小写。这样,您使用什么大小写都无关紧要,因为 Postgres 会自动将所有未加引号的标识符转换为小写。然后任何一个都可以工作:

 select city from customers;
select City from Customers;
SELECT CITY FROM CUSTOMERS;

原文由 Tometzky 发布,翻译遵循 CC BY-SA 3.0 许可协议

您的查询没有任何问题。看起来您的教程希望您遵循始终将表名添加到您引用的列的做法。实际上,仅当它会导致歧义时才需要这样做(例如,如果您正在引用两个表,这两个表都有一个 City 列)。

原文由 Robert Columbia 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题