Пытаюсь для каждого пользователя из таблицы users вывести не более 5 фотографий из таблицы users_images. В приведенном ниже коде ограничение не происходит и для каждой строки таблицы users возвращается все записи из users_images, где id совпадает.
Также rn всегда равно единице, т.е. она не увеличивается. Поэтому и не происходит лимит на количество. В чем может быть проблема. Спасибо заранее!
SELECT
u.`id`,
u.`name`,
`ui`.`user_id`,
`ui`.`name_image`,
ui.rn
FROM users AS u
LEFT JOIN (SELECT id, user_id, name_image
@row_num := CASE WHEN @row_num_val = user_id THEN @row_num + 1
WHEN (@row_num_val := user_id) IS NOT NULL THEN 1
END rn
FROM users_images, (SELECT @row_num := null, @row_num_val := null) AS x
ORDER BY user_id, id
) AS ui ON ui.user_id= u.id and ui.rn <= 5