extraer datos de una tabla, con parámetros en otra en MySQL – mysql join

Pregunta:


Buenas tardes a todos. Necesito su ayuda en el siguiente problema:

Tengo una base de datos en MySQL, la cual tiene una tabla con mas de 100.000 registros. Son varias columnas (cerca de 30) de información, una de ellas el Cod_Cliente. Luego, se importan datos a una tabla en blanco, donde tiene unas 5 columnas, una de ellas tambien Cod_Cliente. Esta tabla tiene unos 5.000 registros.

Necesito hacer lo siguiente:
Una vez cargada la tabla en blanco, con los 5,000 registros, se corra un proceso para buscar cada fila de esta tabla, buscar el mismo Cod_cliente en la tabla de 100.000 registros, y se llene una tercera tabla donde se unan columnas de una y de la otra.

El campo Cod_Cliente tiene datos únicos, de cada uno de los 100.000 clientes. En ambas tablas es único

Alguien me puede dar una mano, por favor?

Gracias

Preguntado por: Gonzalo

Utiliza un INNER JOIN para unir las filas necesarias de ambas tablas. Para insertar en una tabla, puedes utilizar INSERT INTO de la siguiente manera:

INSERT INTO T3 (COD_CLIENTE, <otras columnas)
SELECT T1.COD_CLIENTE, <columnas con valores>
FROM Tabla1 T1
    INNER JOIN Tabla2 T2 ON T2.COD_CLIENTE = T1.COD_CLIENTE
WHERE
    -- quizás necesites otras condiciones
    -- si no tienes ninguna condición adicional, elimina la cláusula WHERE

Se considera buena práctica indicar las columnas y el orden en el que la información se debe insertar. Esto por si la tabla en un futuro cambia su estructura.

Podrias unir ambas tablas usando un INNER JOIN si es que buscas coincidencias
entre ambas

SQL INNER JOIN Keyword

o LEFT JOIN o RIGTH JOIN si buscas obtener los registros de una tabla sin importar si tienen relaciones con la segunda

SQL LEFT JOIN Keyword

en tu caso seria

SELECT T5.campo1, T5.campo2, T10.campo1 as campoT10 
FROM Tabla5MIL T5 
INNER JOIN Tabla10MIL T10 ON T5.Cod_Cliente = T10.Cod_Cliente

El resultado de la query podrias insertarlo en la otra tabla mediante el

SELECT INTO

Fuente

Tags:,

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *