Я пытаюсь этот запрос ниже, где подзапрос будет возвращать несколько записей.
SELECT count(*) as total, GROUP_CONCAT ( SELECT `id`, `lead_id`, `transaction_id`, `status`, `created_at` FROM `payments` WHERE `user_id` = '7') as data FROM `payments`WHERE `user_id` = '7'
но он возвращает следующую ошибку
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `id`, `lead_id`, `transaction_id`, `status`, `created_at` FROM `payments`' at line 1
Пожалуйста, помогите мне решить эту проблему
Вы должны использовать запросы наоборот, например:
SELECT `id`, `lead_id`, `transaction_id`, `status`, `created_at`,
(SELECT count(*) FROM `payments` WHERE `user_id` = '7') AS `total`
FROM `payments` WHERE `user_id` = '7';
Вы не можете вернуть массив записей как одну запись в подзапросе. Лучше читать записи по отдельности и считать их в приложении (или считать счет как другое значение из запроса).
Почему бы просто не упростить это?
SELECT `id`, `lead_id`, `transaction_id`, `status`, `created_at`, count(*)
AS `total` FROM `payments` WHERE `user_id` = '7'
GROUP BY `id`, `lead_id`, `transaction_id`, `status`, `created_at`;
Во всяком случае, чего вы пытаетесь достичь? приведите пример данных и данных, которые вы пытаетесь получить.