MySQL Query не может найти столбец [дубликата]

0

У меня есть запрос, который отлично работает, когда я пытаюсь добавить еще один столбец туда, где он не может найти столбец и дает ошибку.

SELECT '1' AS 'row_count', (
    SELECT 
        COUNT(*) 
    FROM 
        'attendances' 
    WHERE 'program_sessions'.'id' = 'attendances'.'program_session_id' 
    AND 'attendances'.'deleted_at' IS NULL
) AS 'attendances_count'
FROM
    'program_sessions'
LEFT JOIN 'programs' ON 'programs'.'id' = 'program_sessions'.'program_id'
LEFT JOIN 'program_categories' ON 'program_categories'.'id' = 'programs'.'program_category_id'
LEFT JOIN 'service_areas' ON 'service_areas'.'id' = 'program_categories'.'service_area_id'
LEFT JOIN 'locations' ON 'locations'.'id' = 'programs'.'location_id'
WHERE (
    LOWER('program_categories'.'name') LIKE "%3%" OR 
    LOWER('programs'.'name') LIKE "%3%" OR 
    LOWER('locations'.'name') LIKE "%3%" OR
    (attendances_count = 3) OR 
    LOWER('service_areas'.'name') LIKE "%3%"
) 
AND 'program_sessions'.'deleted_at' IS NULL

MySQL said: #1054 - Unknown column 'attendances_count' in 'where clause'

Запрос каким-то образом не может достичь attendances_count. Что я делаю неправильно?

  • 0
    Являются ли значения, полученные из коррелированного подзапроса в предложении SELECT , даже значимыми? Вы считаете более пяти присоединившихся столов.
  • 0
    @TimBiegeleisen Да, так и должно быть. Это простые таблицы, хотя.
Показать ещё 1 комментарий
Теги:

1 ответ

1

Здесь найдена проблема, очевидно, где clouse не может видеть столбцы с псевдонимом. Я должен использовать having вместо этого.

Можете ли вы использовать псевдоним в предложении WHERE в mysql?

  • 1
    Да, это будет работать (только на MySQL), но я думаю, что мы можем переписать ваш запрос, чтобы избежать использования HAVING .
  • 0
    Я хотел бы посмотреть, как вы это напишите.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню