Consultando vários campos de junção com valores separados por vírgula
No SQL, ao lidar com tabelas contendo listas separadas por vírgula (CSVs) em em suas áreas, pode ser um desafio realizar junções de maneira eficaz. Este artigo explora um cenário específico em que a coluna de categorias em uma tabela de filmes contém vários IDs de categoria, e o objetivo é excluí-la completamente ao buscar os nomes das categorias correspondentes em uma tabela de categorias.
As tabelas a seguir ilustram o cenário :
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 a junção desejada, podemos utilizar a função find_in_set() em conjunto com uma operação group_concat(). Aqui está a 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
Explicação da consulta:
A saída resultante é exibida os IDs dos filmes junto com seus nomes de categorias correspondentes em um formato de array. Isso permite fácil acesso às categorias relevantes sem a necessidade de decodificar o CSV na tabela de filmes.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3