Не применяется условие к алиасу колонки mysql

161
18 августа 2018, 08:20

При выполнении запроса

SELECT
  `people`.`id`,
  CONCAT_WS(' ', `people`.`lastname`, `people`.`firstname`, `people`.`fathersname`) as `fio`,
  `positions`.`name` as `position`
FROM `people`    
INNER JOIN `staff` ON `staff`.`id` = `people`.`staff_id`
INNER JOIN `departments` ON `departments`.`id` = `staff`.`department_id`
INNER JOIN `positions` ON `positions`.`id` = `staff`.`position_id`
WHERE `fio` = 'Суровый Эдуард Петрович'

Получаю ошибку:

Unknown column 'fio' in 'where clause'

При отсечении условия WHERE запрос успешно отрабатывает и возвращает указанные в SELECT поля.

Answer 1

Алиас поля выходного набора не существует на момент выполнения секции WHERE.

Возможные решения:

  1. Копирование выражения в секцию WHERE вместо алиаса

  2. Перенос условия в секцию HAVING

Answer 2

Почитайте, какая очередность выполнения операторов во время запроса. Например, тут

Ваш запрос должен выглядеть так:

SELECT people.id, CONCAT_WS(' ', people.lastname, people.firstname, people.fathersname) as fio, positions.name as position
FROM people
INNER JOIN staff ON staff.id = people.staff_id
INNER JOIN departments ON departments.id = staff.department_id
INNER JOIN positions ON positions.id = staff.position_id
WHERE CONCAT_WS(' ', people.lastname, people.firstname, people.fathersname) = 'Суровый Эдуард Петрович'
READ ALSO
can't create the table (ERROR 1005 (HY000):errno: 150)

can't create the table (ERROR 1005 (HY000):errno: 150)

В чем моя ошибка, не могу создать таблицу movies_genres

160
Растягивание картинки в блоке

Растягивание картинки в блоке

подскажите как можно сделать?

166
CSS-анимация не работает для svg в <img>

CSS-анимация не работает для svg в <img>

Я пытаюсь анимировать SVG в теге image / object, но анимация не работает

189
Как сделать форму

Как сделать форму

Как сделать такую форму в bootstrapЕсть, где это можно будет прочитать

184