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

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