Postgresql - 为什么我不能正确地复合查询模式?

Postgresql - why cant I compound queries on schemas properly?

大家好,希望这是一个简单的问题。我只参加了一个简单的 SQL 课程,现在正试图将它应用到一个真正的 postgres 数据库中。我遇到的直接困难是在模式级别(多个模式)处理事情,而我所学到的一切只处理单个模式中多个表之间的查询。

我正在尝试 one step more than this questioner 并按架构进行过滤,但对我来说情况很奇怪

这就是我的意思。此查询 returns 我期望的结果(并被解除 straight from this SO example):

所以根据我到目前为止的 sql 培训,我认为我可以获取输出并进一步完善它。

select table_name
from (select table_name, table_schema from information_schema.columns where column_name = 'user_id')
where table_schema = "web_app"

这样做会产生一个非常奇怪的错误:

为什么将明明是字段的内容视为列??这是什么derived_table1? (大概是复合查询?)

在极不可能的情况下,这是一个软件问题,我正在使用 Navicat premium 9.1.2 并连接到 amazon redshift。

  • 关于颜色,我想是和你的工具有关,关键字是这样着色的。 'table_name' 似乎被视为关键字。检查关键字列表并在必要时进行更正。
  • 您输入的查询有误。请删除 'table_schema'。
  • 如果您 select 来自 select,则数据库引擎认为返回的表列表是派生的。该列表是在运行时计算的,优化这些查询并不容易。

嗨,未来遇到同样问题的人,请参阅 a_horse_with_no_name 的评论。这就是我的问题的正确答案。