Задать вопрос
@kiberchainik
начинающий найкрутейшЫй програмЁр

Как подставить алиас в sql?

На данный запрос

SELECT a.id as a_id, a.title, a.seo, a.description, a.validate, ai.src 
FROM adverts as a, category as c, category_advert as ca 
	LEFT JOIN advert_imgs as ai ON ai.main = 1 and ai.id_adv = a.id 
WHERE MATCH(a.title, a.description, a.keywords) AGAINST ('appartamento' IN BOOLEAN MODE) and a.validate = 1 
ORDER BY `a.title` ASC

выдается ошибка #1054 - "Неизвестный столбец 'a_id' в 'on clause'". Но как он неизвестный, если он объявлен?
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Тестировщик на Python
    9 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Merion Academy
    Базы данных с нуля
    2 месяца
    Далее
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Приоритет запятой ниже приоритета JOIN. Поэтому запрос по факту такой:
FROM adverts as a, 
     category as c, 
     ( category_advert as ca 
       LEFT JOIN advert_imgs as ai ON ai.main = 1 and ai.id_adv = a.id )

Очевидно, что внутри скобок никакого a.id нет.

Забудьте про возможность использовать запятую во FROM. Навсегда. Используйте вместо неё CROSS JOIN.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы