SQL查询之间有什么区别?

时间:2016-04-16 18:37:06

标签: sql postgresql

我们有这个问题:

SELECT t FROM articles t WHERE t.article_id = 59446

也称为:

SELECT articles FROM articles WHERE articles.article_id = 59446

我无法理解

SELECT articles FROM articles

这是什么意思?为什么会这样?

更新:表'文章'没有列'文章'

1 个答案:

答案 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包含两个字段(这也是"列""字段"是不一样的)。