2016-04-16 142 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包含兩個字段(這也是一個很好的例子,「列」和「字段」是不同的東西)。

相關問題