2016-04-16 177 views
6

我们在这一查询:SQL查询之间有什么区别?

SELECT t FROM articles t WHERE t.article_id = 59446 

又名:

SELECT articles FROM articles WHERE articles.article_id = 59446 

我无法理解

SELECT articles FROM articles 

这是什么意思?它为什么有效?

更新:表“文章”没有列“文章”

+0

在'articles'表中是否有名为'articles'的列? – Kevin

+0

@Kevin不,表'文章'没有列'文章' – Alexander

回答

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包含两个字段(这也是一个很好的例子,“列”和“字段”是不同的东西)。

相关问题