Unidad 4. Ejercicio paso a paso: La composición externa LEFT JOIN y RIGHT JOIN


Nota: Para realizar los ejercicios, utiliza la base de datos GestionSimples.

Objetivo

Combinar datos de dos tablas que tienen algún dato en común, con la finalidad de ampliar la información en una única tabla. Tendremos en cuenta los nulos, de forma que el LEFT o el RIGHT indicarán qué tabla es la que deberá aparecer, en caso de no tener correspondencia en la otra.

Ejercicio paso a paso

Listar todos los empleados y la ciudad y región donde trabaja.

SELECT  numemp, nombre, edad, titulo, CONVERT(CHAR(8),contrato,3)AS contrato, jefe, empleados.oficina,ciudad, region

FROM oficinas RIGHT JOIN empleados ON oficinas.oficina = empleados.oficina;

Resultado:

Numemp Nombre Edad Titulo Contrato Jefe Oficina Ciudad Region
101 Antonio Viguer 45 representante 20/10/86 104 12 Alicante este
102 Alvaro Jaumes 48 representante 10/12/86 108 21 Badajoz oeste
103 Juan Rovira 29 representante 01/03/87 104 12 Alicante este
104 José González 33 dir ventas 19/05/87 106 12 Alicante este
105 Vicente Pantalla 37 representante 12/02/88 104 13 Castellon este
106 Luis Antonio 52 director general 14/06/88 NULL 11 Valencia este
107 Jorge Gutiérrez 49 representante 14/11/88 108 22 A Coruña oeste
108 Ana Bustamante 62 dir ventas 12/10/89 106 21 Badajoz oeste
109 María Sunta 31 representante 12/10/99 106 NULL NULL NULL
110 Juan Victor 41 representante 13/01/90 104 NULL NULL NULL
111 Juan Gris 50 representante 01/05/05 110 21 Badajoz oeste
112 Julián Martorell 50 representante 01/05/06 NULL NULL NULL NULL
113 Juan Gris 18 representante 01/01/07 NULL NULL NULL NULL

Listar todas las oficinas y los nombres y títulos de sus directores.

SELECT  oficinas.*, nombre AS director, titulo

FROM oficinas LEFT JOIN empleados ON dir = numemp;

Resultado:

Oficina Ciudad Region Dir Objetivo Ventas Director Titulo
11 Valencia este 106 57500,00 69300,00 Luis Antonio director general
12 Alicante este 104 80000,00 73500,00 José González dir ventas
13 Castellon este 105 35000,00 36800,00 Vicente Pantalla representante
21 Badajoz oeste 108 72500,00 84400,00 Ana Bustamante dir ventas
22 A Coruña oeste 108 30000,00 18600,00 Ana Bustamante dir ventas
23 Madrid centro 108 NULL NULL Ana Bustamante dir ventas
24 Aranjuez centro 108 25000,00 15000,00 Ana Bustamante dir ventas
25 Valencia NULL NULL NULL NULL NULL NULL
26 Pamplona norte NULL NULL 200000,00 NULL NULL
27 Móstoles Centro NULL NULL 0,00 NULL NULL
28 Valencia este NULL 90000,00 0,00 NULL NULL
29 Valencia este NULL 10000,00 2100,00 NULL NULL
30 pamplona norte NULL 20000,00 NULL NULL NULL
31 Elx NULL NULL NULL 0,00 NULL NULL

Listar las oficinas con objetivo superior a 60.000 euros indicando para cada una el nombre de su director.

SELECT  oficinas.*, nombre AS director

FROM oficinas LEFT JOIN empleados ON dir = numemp

WHERE objetivo > 60000;

Resultado:

Oficina Ciudad Region Dir Objetivo Ventas Director
12 Alicante este 104 80000,00 73500,00 José González
21 Badajoz oeste 108 72500,00 84400,00 Ana Bustamante
28 Valencia este NULL 90000,00 0,00 NULL

   Inicio    






.