- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть запрос вида
from cl6s3_firms_items as t1
INNER JOIN cl6s3_firms_fields_value as t2 on t2.item_id = t1.id
LEFT JOIN cl6s3_firms_exam as t3 on t3.item_id = t1.id
WHERE t1.category_id = 173
and t2.type_id = 2
and t1.comments < 2
GROUP by t1.id
В таблице cl6s3_firms_exam для условия t3.item_id = t1.id может быть несколько совпадений
и мне нужно либо max(t3.year) либо max(t3.id) (так как самый свежий год - t3.year будет иметь наибольший t3.id)
но добавить это в условие WHERE не получается, ругается на ошибку. Как быть?
Как взять самый свежий год?
P.S. данных в cl6s3_firms_exam может и не быть, поэтому left
---------- Добавлено 16.12.2019 в 10:33 ----------
Придумал такой способ
and t2.type_id = 2
and t1.comments < 2
and t3.year =(SELECT max(year) FROM `cl6s3_firm_exam` WHERE `item_id` = t1.id)
GROUP by t1.id
но тогда теряется смысл LEFT и в выборке будут только данные где есть результат из firm_exam
По другому никак?
---------- Добавлено 16.12.2019 в 10:45 ----------
Ну и уже по традиции отвечаю сам себе - условие оказывается можно поднять в join
всем спасибо за внимание :))
Такая конструкция может не сработать на некоторых sql серверах, и ошибку не даст и верного результата (если у вас работает- хорошо)