Почему столбец результата подзапроса не использует мой псевдоним в качестве имени столбца?
Это мой запрос:
SELECT messages.*,
units.*,
MAX(messages.created_at) AS 'conversation_date',
(select count(*) as messages from messages where unit_id = units.id),
WEEKOFYEAR(MAX(messages.created_at)) as 'woy',
YEAR(MAX(messages.created_at)) as 'year',
classifications.description AS 'classification'
FROM messages
JOIN units ON units.id = messages.unit_id
JOIN classifications ON units.classification_id = classifications.id
WHERE from_id <> units.creator_id GROUP BY messages.unit_id, from_id, to_id
Я пытаюсь назвать 4-ую колонку "messages"
, но имя возвращается буквально "(select count(*) as messages from messages where unit_id = units.id)"
Что я делаю неправильно?
1 ответ
Чтобы присвоить результату подзапроса имя (то есть псевдоним), вы не помещаете псевдоним внутри подзапроса, вы кодируете его вне подзапроса, например:
select
...
(select count(*) from messages where unit_id = units.id) as messages
...
Без указания псевдонима для всего подзапроса имя столбца, данное результату подзапроса, является самим подзапросом (который является вашим заданным вопросом) - последним предложением).