1

Тема: GROUP_CONCAT LIMIT

Всім привіт! Є необхідність на рівні SQL зробити вибірку 3х останніх коментарів до кожного запису krok_questions

SELECT *,
    (
        SELECT GROUP_CONCAT(concat(`c_message`, ' \n------------', `users`.`u_id`) SEPARATOR '==')
        FROM `comments`
        LEFT JOIN `users` ON `users`.`u_id` = `comments`.`c_user`
        WHERE `comments`.`c_group` = 1 AND `comments`.`c_val` = `krok_questions`.`kq_id`
        ORDER BY `comments`.`c_date` DESC
        LIMIT 3
    ) as `arrayComment`
FROM `krok_questions`
WHERE ..........
LIMIT ..........
Все працює, але в результаті в arrayComment закидаються ВСІ результати з таблиці comments де `comments`.`c_group` = 1 AND `comments`.`c_val` = `krok_questions`.`kq_id`
А LIMIT 3 Не працює
Підкажіть, як виправити?

2

Re: GROUP_CONCAT LIMIT

Використовуй підзапит у FROM

3

Re: GROUP_CONCAT LIMIT

Ліміт обрізає кількість повернутих рядків, а не обробленних, він викликається після груп бай.

Подякували: FakiNyan1

4

Re: GROUP_CONCAT LIMIT

savelikan написав:

А LIMIT 3 Не працює

LIMIT не підтримується group_concat: https://bugs.mysql.com/bug.php?id=30098

Подякували: flatliner, leofun012