#mysql #mysql-error-1054
#mysql #mysql-ошибка-1054
Вопрос:
При использовании следующего запроса я получаю сообщение об ошибке
#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. не могли бы вы ОПИСАТЬ таблицы sms и users, пожалуйста?
Ответ №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
Из-за проблем с псевдонимами столбцов:
Вы можете использовать псевдоним в предложениях GROUP BY , ORDER BY или HAVING для ссылки на столбец
Комментарии:
1. ВСЕ та же ошибка! (Pl. Nt.: я скопировал ваш запрос как есть)
2. Извините, @Tajar, я забыл удалить
plus-minus
во внутреннем запросе. Попробуйте сейчас.3. Спасибо! Очень полезно… узнал что-то новое, что требуется снова и снова!