Я хотел бы обобщить данные DISTINCT, возвращаемые переменной id_module, а также отобразить id_content и заголовок.
Я пытался использовать array_sum, array_count и for_each ... Я изо всех сил пытаюсьпонять, как правильно это настроить.Я получил часть этого для работы и ищу направление, как получить остальные данные для отображения.
Вот пример массива JSON, который я могу получить, когда я выполняю следующий запрос:
select DISTINCT id_module, id_cr, title from content WHERE (id_module = '003' OR id_module = '005')
UNION ALL
SELECT DISTINCT id_module, id_cr, title FROM content_users WHERE (id_module = '003' OR id_module = '005') and id_user='999'
Array
(
[content] => Array
(
[0] => Array
(
[id_content] => 49620
[title] => Asthma: The Basics—Part 1
[id_module] => 001
)
[1] => Array
(
[id_content] => 49633
[title] => Asthma: The Basics—Part 2
[id_module] => 001
)
[2] => Array
(
[id_content] => 48469
[title] => Autism Spectrum Disorder
[id_module] => 002
)
)
)
Это запрос, который я использую для возврата суммированных результатов (у id_module могут быть дубликаты, поэтому мне нужны только модули DISTINCT, чтобы счетчик был верным).Этот запрос работает нормально и возвращает то, что я ожидаю:
select id_module, count(id_module) as total_module from
(
select DISTINCT id_module, id_cr, title from content WHERE (id_module = '003' OR id_module = '005')
UNION ALL
SELECT DISTINCT id_module, id_cr, title FROM content_users WHERE (id_module = '003' OR id_module = '005') and id_user='999'
)
as T GROUP BY id_module ORDER BY id_module
Возвращенные результаты:
id_module total_module
001 2
002 1
Мне также нужно выполнить объединение обоих результатов обоих запросов... id_content и заголовок возвращены со сводкой ... что-то вроде этого, но мне не удалось написать запрос, который будет возвращаться в следующем формате:
id_module total_module id_content title
001 2 49620 Asthma: The Basics—Part 1
001 2 49633 Asthma: The Basics—Part 2
002 1 48469 Autism Spectrum Disorder
Есть ли способ выполнитьэтот?Я благодарен за любой совет или направление - спасибо!