Hola @RachFeverBee,
Usar una consulta de Explorador de Datos sería la mejor manera de encontrar la información que buscas.
Basándonos en los temas que compartiste y la descripción de tus necesidades de informes, aquí tienes una consulta de Explorador de Datos que podrías usar como punto de partida:
Categorías, Temas y Respuestas
-- [params]
-- date :start_date = 2023-01-01
-- date :end_date = 2025-01-28
WITH filtered_topics AS (
SELECT
t.id AS topic_id,
t.title AS topic_title,
t.created_at AS topic_created_at,
t.user_id AS topic_user_id,
t.category_id AS topic_category_id
FROM
topics t
WHERE
t.created_at BETWEEN :start_date AND :end_date
),
filtered_posts AS (
SELECT
p.id AS post_id,
p.topic_id,
p.user_id AS post_user_id,
p.created_at AS post_created_at,
p.raw AS post_content,
p.post_number
FROM
posts p
WHERE
p.created_at BETWEEN :start_date AND :end_date
),
categories_with_topics AS (
SELECT
c.id AS category_id,
c.name AS category_name,
ft.topic_id,
ft.topic_title,
ft.topic_created_at,
ft.topic_user_id
FROM
categories c
JOIN
filtered_topics ft ON c.id = ft.topic_category_id
),
final_data AS (
SELECT
cwt.category_name,
cwt.topic_id,
cwt.topic_title,
cwt.topic_created_at,
cwt.topic_user_id,
fp.post_id,
fp.post_content,
fp.post_created_at,
fp.post_user_id,
fp.post_number
FROM
categories_with_topics cwt
LEFT JOIN
filtered_posts fp ON cwt.topic_id = fp.topic_id
)
SELECT
fd.category_name AS "Categoría",
fd.topic_id AS "ID del Tema",
fd.topic_title AS "Título del Tema",
fd.topic_created_at AS "Fecha de Creación del Tema",
fd.topic_user_id AS "Autor del Tema",
fd.post_id AS "ID de la Publicación",
fd.post_content AS "Contenido de la Publicación",
fd.post_created_at AS "Fecha de Creación de la Publicación",
fd.post_user_id AS "Autor de la Publicación",
fd.post_number AS "Número de Publicación"
FROM
final_data fd
ORDER BY
fd.topic_created_at ASC,
fd.post_created_at ASC
Este informe generaría los siguientes resultados:
- Nombre de la Categoría: Nombre de la categoría.
- ID del Tema: ID enlazable del tema.
- Título del Tema: Título del tema.
- Fecha de Creación del Tema: Fecha de creación del tema.
- Autor del Tema: Usuario que creó el tema.
- ID de la Publicación: ID enlazable de la publicación.
- Contenido de la Publicación: Texto completo de la publicación.
- Fecha de Creación de la Publicación: Fecha de creación de la publicación.
- Autor de la Publicación: Usuario que creó la publicación.
- Número de Publicación: El número de publicación dentro del tema.
Resultados de Ejemplo
| Categoría | ID del Tema | Título del Tema | Fecha de Creación del Tema | Autor del Tema | ID de la Publicación | Contenido de la Publicación | Fecha de Creación de la Publicación | Autor de la Publicación | Número de Publicación |
|---|---|---|---|---|---|---|---|---|---|
| Discusión General | 101 | ¡Bienvenido al Foro! | 2023-01-02 10:00:00 UTC | 1 | 201 | ¡Hola a todos, bienvenidos! | 2023-01-02 10:05:00 UTC | 2 | 1 |
| Discusión General | 101 | ¡Bienvenido al Foro! | 2023-01-02 10:00:00 UTC | 1 | 202 | ¡Gracias por la cálida bienvenida! | 2023-01-02 10:10:00 UTC | 3 | 2 |
| Soporte Técnico | 102 | ¿Cómo restablecer mi dispositivo? | 2023-02-15 14:30:00 UTC | 4 | 203 | ¿Alguien puede ayudarme a restablecer esto? | 2023-02-15 14:35:00 UTC | 4 | 1 |
| Soporte Técnico | 102 | ¿Cómo restablecer mi dispositivo? | 2023-02-15 14:30:00 UTC | 4 | 204 | Claro, aquí están los pasos… | 2023-02-15 14:40:00 UTC | 5 | 2 |
| Anuncios | 103 | ¡Nuevas Funciones Lanzadas! | 2023-03-01 09:00:00 UTC | 6 | 205 | ¡Echa un vistazo a nuestras nuevas funciones! | 2023-03-01 09:05:00 UTC | 6 | 1 |
Es posible que desees ajustar cómo la consulta ordena los resultados con la declaración ORDER BY al final, dependiendo de cómo quieras ver los resultados, y también ten en cuenta que si tu sitio tiene un gran número de temas y publicaciones, es posible que debas tener en cuenta los Límites de Resultados con el plugin Explorador de Datos.