"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo unir tablas con campos de valores separados por comas en SQL?

¿Cómo unir tablas con campos de valores separados por comas en SQL?

Publicado el 2024-11-16
Navegar:300

How to Join Tables with Comma-Separated Value Fields in SQL?

Consulta de múltiples campos de combinación con valores separados por comas

En SQL, cuando se trata de tablas que contienen listas separadas por comas (CSV) en sus campos, puede resultar complicado realizar uniones de forma eficaz. Este artículo explora un escenario específico donde la columna de categorías en una tabla de películas contiene varios ID de categoría y el objetivo es excluirla por completo mientras se obtienen los nombres de las categorías correspondientes de una tabla de categorías.

Las siguientes tablas ilustran el escenario :

Table categories:
-id-       -name-
1          Action
2          Comedy
4          Drama
5          Dance

Table movies:
-id-       -categories-
1          2,4
2          1,4
4          3,5

Para realizar la unión deseada, podemos utilizar la función find_in_set() junto con una operación group_concat(). Aquí está la consulta:

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id

Explicación de la consulta:

  • find_in_set() comprueba si existe una subcadena especificada dentro de una cadena, en este caso, si un ID de categoría del La tabla de categorías está presente en el CSV de la columna de categorías en la tabla de películas.
  • La cláusula de unión vincula las dos tablas según la condición find_in_set().
  • group_concat() concatena todas las categorías coincidentes nombres para cada ID de película en una sola cadena.
  • La cláusula group by garantiza que los resultados estén agrupados por ID de película, lo que proporciona un resultado limpio y organizado.

El resultado resultante se muestra los ID de las películas junto con los nombres de sus categorías correspondientes en un formato de matriz. Esto permite un fácil acceso a las categorías relevantes sin la necesidad de decodificar el CSV en la tabla de películas.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3