Я использую псевдоним в своем предложении select (AVG(u.rating) as avg_rating
) и затем хотел бы добавить его в мое предложение where avg_rating > 3
, но когда я пытаюсь выполнить этот запрос, я получаю Unknown column 'u3__1' in 'where clause'
.
Кто-нибудь знает, как я могу получить свое предложение where, чтобы увидеть псевдоним? Этот псевдоним работает в orderBy
без проблем, только не в where
.
РЕДАКТИРОВАТЬ: (для более подробной информации)
Выше приведен пример, но вот реальный отрендеренный SQL, не такой простой. Моя проблема на самом деле с псевдонимом по значению с кучей условий. И псевдоним, с которым у меня возникают проблемы, - это сгенерированная дата, которая имеет повторения и не обязательна для каждого поля даты. Поэтому я публикую простой SQL-запрос, который вызывает у меня ту же проблему.
SELECT t.type_id as type_alias, t.* FROM theme as t WHERE t.id > 1 AND type_alias = 3
А вот реальный запрос, если вам это интересно:
SELECT t.id AS t__id, t.created_by AS
t__created_by, t.type_id AS
t__type_id, t.url_slug AS t__url_slug,
t.name AS t__name, t.description AS
t__description, t.summary AS
t__summary, t.start_month AS
t__start_month, t.start_day AS
t__start_day, t.start_year AS
t__start_year, t.duration_unit AS
t__duration_unit, t.duration_length AS
t__duration_length, t.is_active AS
t__is_active, t.is_public AS
t__is_public, t.needs_moderation AS
t__needs_moderation, t.recurrence AS
t__recurrence, t.tag_string AS
t__tag_string, t.date_created AS
t__date_created, t.date_updated AS
t__date_updated, AVG(t2.rating) AS
t2__0, IF(t.recurrence = "none",
STR_TO_DATE(CONCAT(t.start_month,
t.start_day, t.start_year), "%m%d%Y"),
(IF(STR_TO_DATE(CONCAT(t.start_month,
t.start_day, YEAR(NOW())), "%m%d%Y") >
NOW(),
STR_TO_DATE(CONCAT(t.start_month,
t.start_day, YEAR(NOW())), "%m%d%Y"),
STR_TO_DATE(CONCAT(t.start_month,
t.start_day, (YEAR(NOW())+1)),
"%m%d%Y")))) AS t__1, (COUNT(u.id) +
COUNT(e.id)) AS u__2 FROM theme t LEFT
JOIN theme_rating t2 ON t.id =
t2.theme_id LEFT JOIN
user_saves_themes u ON t.id =
u.theme_id LEFT JOIN event e ON
((e.is_active = 1 AND e.theme_id =
t.id)) WHERE t.id IN ('3', '2', '1')
AND (IF(t.recurrence = "none",
STR_TO_DATE(CONCAT(t.start_month,
t.start_day, t.start_year), "%m%d%Y"),
(IF(STR_TO_DATE(CONCAT(t.start_month,
t.start_day, YEAR(NOW())), "%m%d%Y") >
NOW(),
STR_TO_DATE(CONCAT(t.start_month,
t.start_day, YEAR(NOW())), "%m%d%Y"),
STR_TO_DATE(CONCAT(t.start_month,
t.start_day, (YEAR(NOW())+1)),
"%m%d%Y")))) >=
FROM_UNIXTIME(1278001295) AND
t.is_public = ? AND t.is_active = ?)
GROUP BY t.id ORDER BY t__1