在查询中使用别名时出现“#1054 - 未知列”错误?
Posted
技术标签:
【中文标题】在查询中使用别名时出现“#1054 - 未知列”错误?【英文标题】:"#1054 - Unknown column" error when alias is used with-in the query? 【发布时间】:2011-12-08 17:56:04 【问题描述】:使用以下查询时, 我收到错误
#1054 - Unknown column 'plus' in 'field list'
当使用plus-minus
时。否则,查询运行良好。我想有一些与别名相关的东西我不知道如何使用。请指导!
谢谢。
查询:
SELECT users.name,
count(*) as total,
SUM(sms.views)+ SUM(sms.downloads)+ (SELECT count(*) FROM `smsfb` WHERE (`feedback`=1 OR `feedback`=100) AND userid=users.uniqueID) AS plus,
SUM(sms.delreq)+(SELECT count(*) FROM `smsfb` WHERE (`feedback`=5 OR `feedback`=6) AND userid=users.uniqueID) AS minus,
plus-minus
FROM sms,users
WHERE sms.deviceID=users.uniqueID AND sms.catid!=23 AND sms.catid!=44 AND sms.catid!=45
AND date>="2011-10-03" AND date<"2011-10-09"
GROUP BY users.uniqueID HAVING total>10 ORDER BY total DESC LIMIT 0, 10
【问题讨论】:
你能描述一下短信和用户表吗? 【参考方案1】:您不能在查询的选择部分中使用列的别名。
你可以这样做:
SELECT name
, total
, plus
, minus
, plus - minus
FROM (
SELECT users.name,
count(*) as total,
SUM(sms.views)+ SUM(sms.downloads)+ (SELECT count(*) FROM `smsfb` WHERE (`feedback`=1 OR `feedback`=100) AND userid=users.uniqueID) AS plus,
SUM(sms.delreq)+(SELECT count(*) FROM `smsfb` WHERE (`feedback`=5 OR `feedback`=6) AND userid=users.uniqueID) AS minus
FROM sms,users
WHERE sms.deviceID=users.uniqueID
AND sms.catid!=23 AND sms.catid!=44
AND sms.catid!=45
AND date>="2011-10-03" AND date<"2011-10-09"
GROUP BY users.uniqueID HAVING total>10 ORDER BY total DESC
LIMIT 0, 10
) plusAndMinus
来自Problems with Column Aliases:
您可以在 GROUP BY、ORDER BY 或 HAVING 子句中使用别名来引用列
【讨论】:
仍然是完全相同的错误! (Pl. Nt.:我按原样复制粘贴了您的查询) 对不起@Tajar,我忘了删除内部查询中的plus-minus
。立即尝试。
谢谢!很有帮助...学到了一些新的东西,这是一次又一次的需要!以上是关于在查询中使用别名时出现“#1054 - 未知列”错误?的主要内容,如果未能解决你的问题,请参考以下文章
未找到列:Laravel 5 多对多关系查询中“on 子句”中的 1054 未知列“managers.id”
MySQL错误1054未知列'persons.PersonID' in on子句[重复]
SQLSTATE [42S22]:找不到列:1054 未知列 laravel 5.1