2013-09-23 36 views
1

我想要做PostgreSQL中Select聲明聯接,但我有問題PostgreSQL的加入對Select語句

SELECT 
    s.sessionid, sp.lang 
FROM 
    sessions s 
INNER JOIN 
    pages sp 
ON 
    sp.sessionid = s.sessionid 
INNER JOIN 
(
    SELECT 
     max(sessionid) 
    FROM 
     sessions 
    AS 
     maxSession 
) 
ON 
    maxSession = s.sessionid 
WHERE 
    --Where condition 

我收到以下錯誤: 錯誤:子查詢在FROM必須有一個別名

LINE 6: (
     ^
HINT: For example, FROM (SELECT ...) [AS] foo. 

如果我添加了FROM

FROM 
(
    SELECT max(sessionid) 
    FROM sessions 
) 
AS maxSession 

我得到另一個錯誤

ERROR: syntax error at or near "FROM" 
LINE 7: FROM 

想法?

+2

刪除子查詢上的'ALIAS'。它應該在外面。 '( SELECT max(sessionid)maxSession FROM sessions )AS maxSession ON maxSession.maxSession = s.sessionid' –

回答

2

你就近了。

INNER JOIN 
(
    SELECT 
    max(sessionid) as 'maxSession' 
    FROM 
    sessions   
) maxSession 
ON 
maxSession.maxSession = s.sessionid 

您參考查詢作爲表內的任何時間,你需要給它一個名稱...別名整個子查詢後立即去,而不是在子查詢本身。

+1

還有一個失蹤,您需要爲'max(sessionid)'設置別名' –

+0

啊是的,我的馬虎部分。 fixxed ...並且只是注意到你在我的回覆發佈前已經在評論中發現了錯誤。 – Twelfth