2013-06-29 91 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

谢谢如此多的伴侣! :) –

相关问题