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.