Saludos, a los integrantes de la comunidad, con este post iniciamos una serie de articulos mediante los cuales acercaremos material traducido desde sitios en inglés.
Comenzaremos este proyecto poniendo a disposición la traducción del contenido en el sitio SQLzoo.net.
Las traducciones no son literales, en algunos casos se han interpretados los textos a fin de poder proveer una mejor explicación de los ejemplos contenidos.
Si desean que se traduzca el contenido de algun otro sitio, seran bienvenidas sus sugerencias.
Bueno manos a la obra ...
Comenzaremos este proyecto poniendo a disposición la traducción del contenido en el sitio SQLzoo.net.
Las traducciones no son literales, en algunos casos se han interpretados los textos a fin de poder proveer una mejor explicación de los ejemplos contenidos.
Si desean que se traduzca el contenido de algun otro sitio, seran bienvenidas sus sugerencias.
Bueno manos a la obra ...

Supongamos que tenemos una tabla empleados en donde guardamos los datos de los empleados y de los jefes de departamento.
Queremos armar una consulta que muestre el identificador de empleado, nombre del empleado, identificador de su jefe, nombre de su jefe y el departamento al que pertenece su jefe.
Para esto, deberemos relacionar la tabla empleados consigo misma mediante un "self join".
A cada copia de la tabla le asignamos un "alias", en este caso usamos e para los empleados y j para los jefes y a partir de alli podemos tratarlas como tablas diferentes.
Por defecto la unión obtenida es interna (inner join), esto significa que Ruben (Un empleado sin jefe) no se muestra en los resultados.
Queremos armar una consulta que muestre el identificador de empleado, nombre del empleado, identificador de su jefe, nombre de su jefe y el departamento al que pertenece su jefe.
Para esto, deberemos relacionar la tabla empleados consigo misma mediante un "self join".
A cada copia de la tabla le asignamos un "alias", en este caso usamos e para los empleados y j para los jefes y a partir de alli podemos tratarlas como tablas diferentes.
Por defecto la unión obtenida es interna (inner join), esto significa que Ruben (Un empleado sin jefe) no se muestra en los resultados.
CREATE TABLE empleados( id_empleado INTEGER PRIMARY KEY,
nbre_empleado VARCHAR(10),
id_dpto VARCHAR(10),
id_jefe INTEGER REFERENCES empleados
);
INSERT INTO empleados VALUES (1,'Ruben','Ing',NULL);
INSERT INTO empleados VALUES (2,'Juan','SoC',1);
INSERT INTO empleados VALUES (3,'Andres','SoC',2);
INSERT INTO empleados VALUES (4,'Alicia','SoC',2);
SELECT e.nombre as empleado, j.nombre as jefe, j.id_dpto as dpto_jefe FROM empleados e, empleados j WHERE e.jefe_id = j.empleado_id
Traducido por Monica Galarza