elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Join SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Join SQL  (Leído 2,105 veces)
Kanine25

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Join SQL
« en: 13 Mayo 2020, 18:22 pm »

Hola a todos me ha surgido un problema con una sentencia en SQL.

El problema es que no entiendo muy bien que tipo de join debo usar. Si alguien pudiese explicarme los join se lo agradecería.

Espero que alguien pueda echarme una mano.
Muchas gracias y un saludo.


« Última modificación: 18 Mayo 2020, 16:58 pm por Kanine25 » En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.177



Ver Perfil
Re: Join SQL
« Respuesta #1 en: 13 Mayo 2020, 19:41 pm »

No lo he probado, pero por ahí debe andar la cosa. Lo importante para resolver estos ejercicios es leer el enunciado poco a poco e ir armando consultas que satisfagan ese poco a poco para al final juntar todo:

Código
  1. -- Tengo que hacer un select para obtener todas las ciudades del continente Africa.
  2.  
  3. -- Primero dice que quiere obtener todas las ciudades:
  4. SELECT * FROM city
  5.  
  6. -- Luego agrega que tienen que ser solamente los del continente Africa,
  7. -- Primero haces un select de africa para obtener todos los paises de Africa
  8. SELECT * FROM country
  9. WHERE continent = 'africa'
  10.  
  11. -- Entonces se combinan ambas sentencias con un JOIN simple
  12. SELECT * FROM city
  13. INNER JOIN country ON city.countrycode = country.code
  14. WHERE continent = 'africa'
  15.  
  16. -- Al final afinas los campos que de verdad necesitas
  17. SELECT city.name
  18. FROM city INNER JOIN country ON city.countrycode = country.code
  19. WHERE continent = 'africa'
  20.  

- El INNER JOIN es el más utilizado normalmente, este solo muestra los campos que de verdad tienen relación y no estén vacíos, LEFT JOIN mostraría todos los capos de la tabla de la izquierda del LEFT JOIN donde podrían haber campos vacíos o NULL en la tabla de derecha. RIGTH JOIN hace lo mismo pero viceversa.

- Acá te dejo un ejemplo de un LEFT JOIN

Código
  1. CREATE DATABASE banco_2;
  2. USE banco_2;
  3.  
  4. CREATE TABLE directores (
  5.  id        INTEGER      PRIMARY KEY,
  6.  nombre    VARCHAR(50),
  7.  apellidos VARCHAR(50),
  8.  sueldo    FLOAT
  9. );
  10.  
  11. CREATE TABLE sucursales (
  12.  nsucursal INTEGER,
  13.  nombre    VARCHAR(50),
  14.  director  INTEGER      REFERENCES directores(id),
  15.  dirección VARCHAR(100)
  16. );
  17.  
  18. INSERT INTO directores VALUES
  19.  ( 1, 'Alberto', 'Péres Martín' , 2500 ),
  20.  ( 2, 'Antonio', 'López López'  , 3000 ),
  21.  ( 3, 'Silvia' , 'Martín Martín', 2570 ),
  22.  ( 4, 'Pedro'  , 'García Martín', 3500 );
  23.  
  24. INSERT INTO sucursales VALUES
  25.  ( 1, 'Sucursal Centro', 1, 'Avd. del Estilo, 45' ),
  26.  ( 2, 'Sucursal Oeste' , 2, 'Avd. Mandrágora, 4'  ),
  27.  ( 3, 'Sucursal Este'  , 3, 'Calle Arús, 30'      );
  28.  
  29. SELECT directores.nombre
  30.     , directores.apellidos
  31.     , sucursales.nombre AS NOMBRE_SUCURSAL
  32. FROM directores LEFT JOIN sucursales
  33. ON directores.id = sucursales.director;
  34.  
  35. ## RESULTADO ESPERADO ##
  36.  
  37. #+---------+---------------+-----------------+
  38. #| nombre  | apellidos     | NOMBRE_SUCURSAL |
  39. #+---------+---------------+-----------------+
  40. #| Alberto | Péres Martín  | Sucursal Centro |
  41. #| Antonio | López López   | Sucursal Oeste  |
  42. #| Silvia  | Martín Martín | Sucursal Este   |
  43. #| Pedro   | García Martín | NULL            |
  44. #+---------+---------------+-----------------+


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
inner join e cakephp
PHP
hataz 1 4,345 Último mensaje 6 Septiembre 2011, 23:56 pm
por ~ Yoya ~
sql join
Bases de Datos
diego_lp 1 3,139 Último mensaje 15 Octubre 2011, 02:51 am
por fran800m
Inner Join 3 tablas
Bases de Datos
mashiro 2 4,132 Último mensaje 14 Septiembre 2017, 00:10 am
por AlbertoBSD
update con inner join
Bases de Datos
GJ_SISTEMAS 0 1,392 Último mensaje 20 Septiembre 2018, 17:21 pm
por GJ_SISTEMAS
Suma y media con join en SQL
Bases de Datos
thebus4k 4 3,260 Último mensaje 19 Mayo 2020, 15:28 pm
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines