@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'". Но как он неизвестный, если он объявлен?
  • Вопрос задан
  • 49 просмотров
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы