我们有这个问题:
SELECT t FROM articles t WHERE t.article_id = 59446
也称为:
SELECT articles FROM articles WHERE articles.article_id = 59446
我无法理解
SELECT articles FROM articles
这是什么意思?为什么会这样?
更新:表'文章'没有列'文章'
答案 0 :(得分:7)
这是Postgres'对象关系架构。对于您创建的每个表,还有一个具有相同名称的匹配composite type。
运行时
SELECT articles
FROM articles
您从名为articles
的表中选择类型 articles
的单列。如果密切关注该查询的输出,您会注意到您的结果只包含一个列,其中值括在括号中,例如: (1,Foobar)
(如果表格文章有两列)。如果您运行select * from articles
,则输出为两个列(并且没有括号)
当您在括号中放置列列表时会发生同样的事情:
select (article_id, article_name)
from articles
还会返回一个单个列,其中anonymous composite type包含两个字段(这也是"列""字段"是不一样的)。