подзапрос возвращает несколько записей в виде массива объектов в поле в MySQL

Я пытаюсь этот запрос ниже, где подзапрос будет возвращать несколько записей.

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

Пожалуйста, помогите мне решить эту проблему

-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';

Вы не можете вернуть массив записей как одну запись в подзапросе. Лучше читать записи по отдельности и считать их в приложении (или считать счет как другое значение из запроса).

0

Другие решения

Почему бы просто не упростить это?

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`;

Во всяком случае, чего вы пытаетесь достичь? приведите пример данных и данных, которые вы пытаетесь получить.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector