2013-06-29 88 views
-1

爲什麼查詢會給我這個錯誤:#1054 - Unknown column 'a.group_id' in 'where clause'#1054 - 'where子句'中的未知列'a.group_id'

SELECT a.group_id 
FROM message_private a 
INNER JOIN (SELECT group_id,profile_id 
    FROM message_group b 
    WHERE a.group_id = b.group_id AND b.profile_id = 's' 
) as b ON b.group_id = a.group_id 
+1

除此之外,你爲什麼要加入一個子查詢嗎?還是有一個更精細的原因,這只是一個削弱的例子? – Wrikken

回答

3

您試圖在導致錯誤的子查詢中使用表別名a。你應該能夠編寫查詢方式如下:

SELECT a.group_id 
FROM message_private a 
INNER JOIN message_group b 
    ON b.group_id = a.group_id 
WHERE b.profile_id = 's'; 

如果你需要一個子查詢,那麼語法是:

SELECT a.group_id 
FROM message_private a 
INNER JOIN 
(
    SELECT group_id,profile_id 
    FROM message_group 
    WHERE profile_id = 's' 
) b 
    ON b.group_id = a.group_id 
+0

問題是表別名'a'的*作用域*僅在子查詢周圍的括號內 – Bohemian

+0

謝謝如此多的伴侶! :) –

相關問題