Usando el operador IN en Data Explorer

Hola a todos, noté un comportamiento extraño al editar y ejecutar una consulta en el Explorador de Datos. Estoy intentando usar los operadores WHERE e IN para seleccionar solo publicaciones de temas en ciertas categorías:

WHERE
    t.category_id IN (420, 421, 426)

Sin embargo, no estoy seguro de que la condición WHERE funcione como se esperaba: si ejecuto la consulta para períodos anteriores a la creación de las categorías en cuestión, simplemente enumera todos los temas, independientemente de la categoría. Además, el operador IN no cambia de color, y me pregunto si el Explorador de Datos lo reconoce como un operador:

¿Alguna idea de lo que está pasando? ¡Muchísimas gracias!

Hmm. :thinking:

Lo usé en una consulta muy similar anoche y funcionó como esperaba.

¿Podrías compartir tu consulta completa para que podamos ver si hay algo más en juego?

1 me gusta

Claro, aquí tienes. La consulta se utiliza para recuperar la información necesaria para generar un archivo de registro personalizado que pueda ser procesado por Gource. Ver: Custom Log Format · acaudwell/Gource Wiki · GitHub

-- Esta consulta recupera una lista de las últimas publicaciones,
-- junto con la información del usuario asociada y los detalles del tema.
-- El resultado se ordena por fecha de creación en orden ascendente.

-- Los campos seleccionados son los siguientes:
-- timestamp: Una marca de tiempo ISO 8601 o unix de cuándo se creó la publicación.
-- username: El nombre de usuario del usuario que creó la publicación.
-- type: Un valor codificado 'A' que indica el tipo de acción (en este caso, 'Added').
-- topic: El ID del tema al que pertenece la publicación.
-- post_number: El número único de la publicación dentro de su tema.
-- reply_to_post_number: El número de publicación al que esta publicación es una respuesta (si la hay).
-- raw: El contenido de la publicación, limitado a los primeros 30 caracteres.
-- category_id: El ID de la categoría a la que pertenece el tema.

SELECT
    p.created_at as timestamp,
    u.username,
    'A' as type,
    p.topic_id as topic,
    p.post_number as post_number,
    p.reply_to_post_number as reply_to_post_number,
    SUBSTRING(p.raw, 1, 30) AS raw,
    t.category_id
FROM
    posts p
JOIN
    users u ON p.user_id = u.id
JOIN
    topics t ON p.topic_id = t.id
WHERE
    t.category_id IN (420, 421, 426)
    AND t.created_at > '2022-01-01'
ORDER BY
    p.created_at ASC
LIMIT 1000
1 me gusta

Todo parece estar en orden.

Cuando lo ejecuto contra nuestras tres nuevas categorías de documentos (creadas hace unos 10 días) usando el mismo AND t.created_at > '2022-01-01', no veo que se extraiga ningún dato de fuera de esas categorías (muchas publicaciones de acciones pequeñas, que es posible que desees filtrar según tu caso de uso). Ejecutarlo sin el AND t.created_at > '2022-01-01' por completo también solo extrae datos de esas categorías.

2 Me gusta