es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Unir tablas de mysql con solo una columna en común

Por favor, ayúdame a encontrar una solución para mi caso. Tengo n tablas con la siguiente estructura:

main_id sec_id col_name1
1 9 aaa
2 8 bbb
main_id sec_id col_name2
1 9 ccc
2 8 bbb

main_id sec_id col_namen
1 9 ddd
3 7 eee

Lo que quiero tener es:

main_id sec_id col_name1 col_name2 col_namen
1 9 aaa ccc ddd
2 8 bbb bbb null
3 7 null null eee

¿Es posible unir estas tablas?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible unir tales tablas usando la siguiente consulta SQL:

    SELECT main_id, sec_id, col_name_1 as col_name1, col_name_2, col_name_n
    FROM table1
    UNION
    SELECT main_id, sec_id, null as col_name1, col_name_2, col_name_n
    FROM table2
    UNION
    ...
    SELECT main_id, sec_id, null as col_name1, null as col_name_2, col_name_n
    FROM tablen;
    

    Al utilizar el operador UNION, podemos combinar los resultados de múltiples declaraciones SELECT en un único conjunto de resultados. En este caso, estamos seleccionando el main_id, sec_id y cada columna de cada tabla, pero asignando a cada columna un alias diferente (por ejemplo, col_name_1 as col_name1) para que los nombres de las columnas coincidan en el conjunto de resultados final. También incluimos valores nulos para aquellas columnas que no están presentes en una tabla específica.

    Ten en cuenta que si el número de tablas es dinámico y no se conoce de antemano, es posible que necesites generar esta consulta SQL de forma programática utilizando un lenguaje de scripting o un procedimiento almacenado.

Comments are closed.