为什么以下查询不起作用?
SELECT uid,
CONCAT(fname,' ',lname) AS name,
(SELECT COUNT(t1.id) FROM table1 t1 WHERE t1.reference = user_id) AS amount
FROM users
WHERE type = 'SLA' AND amount > 0;
在查询的SELECT部分中,我使用AS别名。哪个工作正常,但现在我要确保ALIASES实际上持有一些值,并且只返回这样做的行。
我想念什么吗?
答案 0 :(得分:0)
您不能在where
子句的select
中使用别名,我想您可以编写一个JOIN
子查询来获得另一个结果集来代替它。
SELECT u.uid,
CONCAT(u.fname,' ',u.lname) AS name,
t1.amount
FROM users u
INNER JOIN (
SELECT COUNT(*) as amount,
reference
FROM table1
GROUP BY reference
) t1 ON t1.reference = u.user_id
WHERE u.type = 'SLA' and t1.amount > 0