SQL Error 1054 Unknown column

142
29 июля 2019, 13:00
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)

Answer 1

К сожалению таблица внутри запроса доступна только на первом уровне вложенности подзапросов. По этому запрос необходимо переделать таким образом, что бы не было необходимости ссылаться на внешнюю таблицу на глубоких уровнях.

Ваш запрос можно переделать как:

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) - то это подходящая нам для подсчета запись.

READ ALSO
Параллакс страницы

Параллакс страницы

Как создать параллакс эффект, чтобы фоновое изображение прокручивалось медленно, в то время как блоки страницы (прозрачные) перемещались...

144
Неправильно ведут себя пустые ячейки в CSS grid, заданные свойством grid-template-areas

Неправильно ведут себя пустые ячейки в CSS grid, заданные свойством grid-template-areas

Делаю грид на CSS, ориентируясь на шпаргалку: https://tuhubru/posts/css-grid-complete-guide#prop-grid-template-areas

104
Как мне задать анимацию с момента загрузки страницы?

Как мне задать анимацию с момента загрузки страницы?

Чтобы эффект слайдера был как на этом сайте http://goodsklad24ru/ То есть при загрузке 1 слайд всегда выезжает сверху

108