Actualizar varias tuplas con valores de otra tabla en SQLite

Vamos a ejemplificar lo siguiente: tenemos 2 tablas que por alguna razón fueron actualizadas en diferentes momentos a una le vamos a llamar tteamsoft que contiene la información de los diferente equipos de desarrollo y la otra es tdeveloper que son los programadores/desarrolladores que tiene una empresa de software.

CREATE TABLE “tteamsoft” (
“idteam” INTEGER,
“name” TEXT NOT NULL,
“idproject” INTEGER NOT NULL,
“iddevleader” INTEGER,
PRIMARY KEY(“idteam” AUTOINCREMENT)
);

CREATE TABLE “tdeveloper” (
“iddeveloper” INTEGER,
“name” TEXT NOT NULL,
“lastname” TEXT NOT NULL,
“email” TEXT NOT NULL UNIQUE,
“isteamleader” INTEGER NOT NULL DEFAULT 0,
“idteam” INTEGER NOT NULL,
PRIMARY KEY(“iddeveloper” AUTOINCREMENT)
);

En la columna de iddevleader necesitamos que contenga el id del desarrollador (iddeveloper) que sería el líder del equipo, la forma de saber quien es el líder en la columna isteamleader tendrá un 1 es necesario también preguntar por id del equipo (idteam); por lo que vamos a ejecutar el siguiente comando UPDATE.

UPDATE tteamsoft SET iddevleader =
(SELECT iddeveloper FROM tdeveloper WHERE
tteamsoft.idteam==tdeveloper.idteam AND tdeveloper.isteamleader==1);

El resultado de este comando lo podemos observar a continuación, nos damos cuenta que para el equipo X Factor el líder es el desarrollador con id igual a 10, la cual es Ada Lovelace, para Anonymous es el id igual a 1 correspondiente a Edsger Disjktra, para Silicon Valley el líder de equipo es el id 4 que es Dennis Ritchie y para NeXT es el id 7 que es el desarrollador Alan Turing.

Si revisamos un anterior artículo es diferente a como se hace en el PLSQL de Oracle.

Hasta aquí dejamos este artículo, saludos y síganse cuidando.

Miguel Araujo.

Deja un comentario