我是SQL的初学者,所以如果这个问题很原始,我很抱歉。
我刚刚开始关注http://www.w3schools.com的教程,所以下载了" Northwind"数据库尝试使用它,并使用pgAdmin 3控制台访问数据库。
我只是尝试使用简单的命令来选择表中的一列,但它给出了与任何表中的任何列相同的以下消息
LINE 1: select City from Customers;
^
HINT: Perhaps you meant to reference the column "customers.City".
我想问一下我的命令有什么问题吗?以及如何解决它?
由于
答案 0 :(得分:19)
当你导入这个" Northwind"数据库列名已在CamelCase中导入 - 您的导入必须为create table
个查询的列标识符添加双引号。
这是相当不幸的,因为这会导致您在所有查询中也必须引用它们,例如:
select "City" from customers;
为了保持理智,我建议你rename all columns to lower case。这样,使用的情况并不重要,因为Postgres会自动将所有未加引号的标识符转换为小写。那么任何一个都可行:
select city from customers;
select City from Customers;
SELECT CITY FROM CUSTOMERS;
答案 1 :(得分:0)
您的查询没有任何问题。看起来您的教程希望您遵循始终将表名添加到您引用的列的做法。实际上,只有当它会导致歧义时才需要这样做(例如,如果你引用两个表,这两个表都有一个City列)。