Задать вопрос
@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'". Но как он неизвестный, если он объявлен?
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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