SELECT id,
(SELECT count(*) FROM log_like_authoriz,
(SELECT * FROM log_like_authoriz WHERE (user_id, id) in
(SELECT user_id, MAX(id) FROM log_like_authoriz WHERE run_id = r.id GROUP BY user_id)
HAVING type_like <> 0) s WHERE t.id = s.id) AS like_count FROM run r ORDER BY id DESC
Ошибка> SQL (1054): Unknown column 'r.id' in 'where clause'
как правильно определить это значение ID из таблицы RUN
SELECT count(*) FROM log_like_authoriz,
(SELECT * FROM log_like_authoriz WHERE (user_id, id) in
(SELECT user_id, MAX(id) FROM log_like_authoriz WHERE run_id = 19 GROUP BY user_id)
HAVING type_like <> 0) s WHERE t.id = s.id
Этот запрос получает все лайки типа 1, для определенного run(например 19) по последней записи user_id (т.е. с максимальным id)
К сожалению таблица внутри запроса доступна только на первом уровне вложенности подзапросов. По этому запрос необходимо переделать таким образом, что бы не было необходимости ссылаться на внешнюю таблицу на глубоких уровнях.
Ваш запрос можно переделать как:
SELECT run_id as id, count(1)
FROM (
SELECT run_id, user_id
FROM log_like_authoriz
GROUP BY run_id, user_id
HAVING MAX(id) = MAX( (type_like<>0) * id )
) x
GROUP BY run_id
При необходимости дополнительных полей из таблицы run надо выполнить ее join к подзапросу "x".
Так как любая логическая операция (например <>
) в MySQL дает в результате 0 или 1. То условие (type_like<>0) * id
дает 0 в случае если type_like=0 или дает id при других type_like. Применяя к этому выражению MAX мы получаем максимальный id у которого не нулевой type_like. Если полученный id равен id последней записи для данного пользователя (в пределах run_id) - то это подходящая нам для подсчета запись.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как создать параллакс эффект, чтобы фоновое изображение прокручивалось медленно, в то время как блоки страницы (прозрачные) перемещались...
Делаю грид на CSS, ориентируясь на шпаргалку: https://tuhubru/posts/css-grid-complete-guide#prop-grid-template-areas
Чтобы эффект слайдера был как на этом сайте http://goodsklad24ru/ То есть при загрузке 1 слайд всегда выезжает сверху