在SQL语句中接收“where子句”中的“未知列'users_permissions.user_id'”错误

问题描述 投票:0回答:2

不太确定为什么我会收到这个错误,因为这些列存在。

SELECT (SELECT first_name
        FROM users u
        WHERE u.assistant_id=users_permissions.user_id LIMIT 1) as Name, AVG(duration)
FROM aircalls a
WHERE assistant_id !='NULL' AND status='Call Connected'
AND DATE_FORMAT(a.created_at,'%Y')='2019' 
GROUP BY assistant_id 
sql
2个回答
0
投票

好像你错过了子查询中的表用户权限

    SELECT (
        SELECT first_name
        FROM users u
        INNER JOIN users_permissions ON  u.assistant_id=users_permissions.user_id 
        LIMIT 1) as Name, AVG(duration)
    FROM aircalls a
    WHERE assistant_id !='NULL' AND status='Call Connected'
    AND DATE_FORMAT(a.created_at,'%Y')='2019' 
    GROUP BY NAME

0
投票

您必须将表'users_permission'添加到子查询 - FROM子句

 SELECT (SELECT first_name
            FROM users u, users_permission
            WHERE u.assistant_id=users_permissions.user_id LIMIT 1) as Name, AVG(duration)
    FROM aircalls a
    WHERE assistant_id !='NULL' AND status='Call Connected'
    AND DATE_FORMAT(a.created_at,'%Y')='2019' 
    GROUP BY assistant_id 
© www.soinside.com 2019 - 2024. All rights reserved.