我有以下SQL查询:SQL子查询:行中找不到
SELECT t1.`userID`,`name`, COUNT(*) AS `count`, (SELECT `val` FROM `user-data` WHERE `userID` = t1.userID AND `keyID` = 2 LIMIT 1) AS `staff`
FROM `activity` t1
LEFT JOIN `users` ON `users`.`id` = t1.`userID`
WHERE
t1.`userID` <> 0
GROUP BY t1.`userID`
ORDER BY `count` DESC LIMIT 10
其中一期工程,它需要大约2秒。但是,我想找个地方staff <> 1
条目:
SELECT t1.`userID`,`name`, COUNT(*) AS `count`, (SELECT `val` FROM `user-data` WHERE `userID` = t1.userID AND `keyID` = 2 LIMIT 1) AS `staff`
FROM `activity` t1
LEFT JOIN `users` ON `users`.`id` = t1.`userID`
WHERE
t1.`userID` <> 0
AND `staff` <> 1
GROUP BY t1.`userID`
ORDER BY `count` DESC LIMIT 10
我得到的错误:Unknown column 'staff' in 'where clause'
我可以把子查询的WHERE子句中,但随后的查询需要70秒。
但我当然应该可以访问我在SELECT语句中引用的列吗?
'和staff' <'是不完整的 –
只是检查,你忘了在你的查询中添加AND'staff' <> 1? – lloiacono
不,你不应该。选择列表在** where子句后处理**。 – Shadow