SQL-引用列的提示

SQL-引用列的提示,sql,postgresql,Sql,Postgresql,我是SQL的初学者,如果这个问题很简单,我很抱歉 我刚开始学习的教程,所以下载了“Northwind”数据库来尝试使用它,并使用pgAdmin 3控制台访问数据库。 我只是尝试使用简单的命令来选择表中的一列,但对于任何表中的任何列,它都会给出相同的消息 LINE 1: select City from Customers; ^ HINT: Perhaps you meant to reference the column "customers.C

我是SQL的初学者,如果这个问题很简单,我很抱歉
我刚开始学习的教程,所以下载了“Northwind”数据库来尝试使用它,并使用pgAdmin 3控制台访问数据库。 我只是尝试使用简单的命令来选择表中的一列,但对于任何表中的任何列,它都会给出相同的消息

LINE 1: select City from Customers;
                        ^
HINT:  Perhaps you meant to reference the column "customers.City".
我想问一下,我的命令有什么错误吗?如何修复它


谢谢

您的查询没有问题。您的教程似乎希望您遵循始终在引用的列前面加上表名的做法。实际上,只有在可能导致歧义的情况下(例如,如果您正在引用两个表,这两个表都有一个城市列),才需要这样做。

当您导入此“Northwind”数据库时,列名是在CamelCase中导入的-您的导入必须在列标识符中添加双引号以创建表查询

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

select "City" from customers;
为了保持理智,我建议你这样做。这样,无论您使用哪种情况,Postgres都会自动将所有不带引号的标识符转换为小写。那么,任何一种方法都会奏效:

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

这看起来像是postgres的功能,而不是教程。我猜这与区分大小写有关,因为
客户
vs
客户
跃出市场,但我对博士后不太熟悉,不能确定。w3school被黑客入侵了吗?(我听到各种各样的废话)@wildplasser我想正确的URL应该是@wildplasser对不起,是我打错了。正如马丁所说,我编辑了那个链接。谢谢@Tometzky!它在重命名所有列后工作。但是,我会问您是否有任何关于导入数据库的参考资料,我会保持所有名称的原始状态。