the - sqlite join multiple tables
Combina dos tablas en SQLite (3)
Tengo dos tablas, ta y tb:
ejército de reserva:
key col1
--------
k1 a
k2 c
tuberculosis:
key col2
-------
k2 cc
k3 ee
Se conectaron por "clave". Quiero saber cómo puedo obtener una tabla, tc, como:
key col1 col2
-------------
k1 a
k2 c cc
k3 ee
¿Hay un método fácil en lugar de insertar cada registro? Son un millón de registros de tablas, así que necesito una forma efectiva.
Haga una VISTA de las dos tablas. Escriba una SELECT ... JOIN
que le proporcione el resultado que desea y luego utilícelo como base para una VISTA.
Ejemplo:
CREATE VIEW
database.viewname
AS
SELECT
ta.key,
ta.col1,
tb.col2
FROM
ta
LEFT JOIN
tb
USING(key)
Para lo que estás buscando, deberás hacer un FULL OUTER JOIN para asegurarte de no perder ninguna clave. Una vez que tenga la consulta funcionando, puede pensar en usarla o crear una vista.
Es posible que deba evitar las limitaciones del DB si FULL OUTER JOIN no está implementado. Normalmente, puede UNION una combinación externa izquierda y derecha para crear su totalidad.
Usar una VISTA es el camino correcto si está buscando los datos para reflejar los cambios en las tablas originales.
Si realmente desea que los datos se copien en una nueva tabla, deberá hacer algo como esto:
CREATE TABLE tc(key,col1,col2)
INSERT INTO tc (key,col1,col2)
SELECT ta.key, ta.col1, tb.col2
FROM ta FULL OUTER JOIN tb USING(key)
Eso llenará la nueva tabla con datos de las tablas antiguas, pero podrán variar de forma independiente.