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


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [Solucionado]Dudas Sql subconsultas relacionando varias tablas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado]Dudas Sql subconsultas relacionando varias tablas  (Leído 14,403 veces)
Anonymous250


Desconectado Desconectado

Mensajes: 463



Ver Perfil
[Solucionado]Dudas Sql subconsultas relacionando varias tablas
« en: 19 Diciembre 2011, 10:26 »

Bueno vereis se me dan las consultas que son de 1 sola tabla,pero las que implican sacar datos de dos tablas poniendo requisitos esas no,nose como hacerlas y estoy un poco frustado,ya que tengo que hacer unas 90 consultas y la mayoria son subconsultas :huh:
Consultas de este estilo
Varias tablas ,una llamada equipos, otra ciclista,otra puertos,otra malliots,otra llevar y otra etapas

Obtener el nombre y el director de los equipos tales que todos sus ciclistas son mayores de 20 años.

Obtener el valor del atributo netapa de aquellas etapas tales que todos los puertos que estan en ellas tienen mas de 700 metros de altura.

Obetener el nombre de los ciclistas que han ganado todos los puertos de una etapa y ademas han ganado esa misma etapa.

Obtener el nombre de los equipos tales que todos sus corredores han llevado algun malliot o han ganado algun puerto.

Obtener el nombre de los equipos tal que sus ciclistas solo hayan ganado puertos de la 1 categoria.

El caso es que nose hacer la consulta con varios select creo que era
Domino mas o menos los :
  • Where
  • Or
  • Gruop by
  • from
  • Min
  • Max



« Última modificación: 10 Enero 2012, 12:37 por Anonymous250 » En línea

adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #1 en: 19 Diciembre 2011, 10:32 »

No se cual es el modelo de datos que tienes, mencionas las tablas pero no especificas los tipos de relaciones que tienen ni su cardinalidad, sin embargo las consultas que indicas son básicas en cualquier sistema que maneje tablas en SQL, creo que tienes que aprender SQL básico antes de comenzar ejecutar consultas.

http://es.scribd.com/doc/1555902/Tutorial-SQL-basico



En línea

Saberuneko


Desconectado Desconectado

Mensajes: 2.090



Ver Perfil WWW
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #2 en: 24 Diciembre 2011, 13:40 »

En caso de que tengas un campo clave que una tabla con otra (por ejemplo, el mismo nombre de ciclista en las dos tablas) puedes hacer una unión de tablas, metiendo una condición que te quedaría tal que así:

Suponiendo dos tablas llamadas A y B, ambas teniendo un campo llamado nombre que utilizaremos para unir ambas tablas.

Código:
SELECT nombre, <otros campos>
FROM A, B
WHERE A.nombre = B.nombre
AND <otras condiciones o subconsultas>

Ese WHERE A.nombre = B.nombre es una condición que evita que salgan duplicados los datos de las dos tablas, sólo mostrando cada nombre una vez (cuando coinciden el nombre de la tabla A con el nombre de la tabla B)

Si nos pasas el modelo de datos, te podremos orientar un poco mejor.

Un saludo.
« Última modificación: 24 Diciembre 2011, 13:43 por Saberuneko » En línea

Anonymous250


Desconectado Desconectado

Mensajes: 463



Ver Perfil
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #3 en: 24 Diciembre 2011, 14:40 »

Ok pondre como estan las tablas ,para que las veais,pero no se ven las relaciones,me las an dao en papel,y e de escanearlo.
El caso es que tengo que entregar unas 90 consultas SQL,y la unica manera que se me ocurre de lograrlo es ponerme 5 dias o mas,las 24 horas,  a estudiar a saco consultas,y ir provandolas viendo que funcionan para ver que estan bien.
No es nada del otro mundo,lo que pasa es que bases de datos,se me da bien hasta cierto punto,pero la verdad es que tengo poca seguridad en mi mismo,con subconsultas.

Por cierto adastra mire el tuto que me pasastes asi por encima,gracias,me lo estudiare.
En 1 o 2 dias escaneare eso y lo pongo aqui.
Saludos.


En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.047


Nueva Vida


Ver Perfil WWW
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #4 en: 24 Diciembre 2011, 16:18 »

Lo mejor que puedes hacer es usar INNER JOIN y LEFT OUTER JOIN para unir tus tablas.
En línea

Anonymous250


Desconectado Desconectado

Mensajes: 463



Ver Perfil
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #5 en: 5 Enero 2012, 16:54 »

Bueno estoy intentando hacer subconsultas,y las faciles,no tengo muchas complicacion pero cuando empiezan a pedir muchos requisitos me hago un lio,por  ejemplo.

Tres tablas

Tabla Empleado:
CREATE TABLE EMPLEADO (
ID NUMBER(10) NOT NULL,
NOMBRE VARCHAR2(30),
APELLIDOS VARCHAR2(60),
CARGO VARCHAR2(20),
JEFE_ID NUMBER(10),
FECHA_ALTA DATE,
SUELDO NUMBER(9,2),
COMISION NUMBER(9,2),
DEPARTAMENTO_ID NUMBER(10) NOT NULL,
CONSTRAINT EMPLEADOS_PK
PRIMARY KEY (ID)
USING INDEX);
Tabla Departamento:
CREATE TABLE DEPARTAMENTO (
ID NUMBER(10) NOT NULL,
NOMBRE VARCHAR2(50),
LOCALIDAD VARCHAR2(50),
CONSTRAINT DEPARTAMENTOS_PK
PRIMARY KEY (ID)
USING INDEX);
Tabla Rango_Sueldo:
CREATE TABLE RANGO_SUELDO (
GRADO NUMBER(2),
SUELDO_MIN NUMBER(9,2),
SUELDO_MAX NUMBER(9,2));


Y esta consulta:
Obtener el nonbre del departamento,y el numero de empleados que tiene.
El nombre del departamento da igual,puede ser informatica,prensa,etc

Lo que tiene que hacer la consulta es relacionar la tabla de empleado con la de departamento,haciendo un count entre los empleados cuyo departament_id sean iguales ,los que sean iguales que los cuente y esa cuenta la ponga al lado del nombre del departamento.

Esta claro que aun nose que hace cada cosa bien,por que si lo supiese sabria que poner en este caso y no me aria un lio.
E pensado,pero no doy con la consulta, puede que sea una subconsulta donde haya un count,un having o un where. Del inner join y out join se me dan fatal aun no les e cojido el trankillo,a los alias si. As.

Se que esta mal,pero e intentado algo asi,es que soy un poco corto de mente

SELECT nombre,Count(distinct departament_id) As numero empleados
From empleado,departamento
Where departament_id =
En fin creo que voy a suspender,estas son las faciles a las difiles no e llegado aun..... :-\
« Última modificación: 5 Enero 2012, 17:02 por Anonymous250 » En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #6 en: 5 Enero 2012, 22:44 »

Este miércoles tengo yo el examen final de BBDD precisamente xD

Código
  1. SELECT Departamento.nombre, COUNT(*) FROM Empleado JOIN Departamento
  2. ON(Departamento.Departamento_ID=Empleado.ID) GROUP BY Departamento.nombre

Deberia de ser así, aunque no me gusta tener que usar tanto el "." para identificar la tabla.. si es para estudiar y hacer ejercicios, me sorprende que te lien con tanto nombre igual.

Si no lo ves muy claro, haz primero esto:

Código
  1. SELECT * FROM Empleado JOIN Departamento
  2. ON(Departamento.Departamento_ID=Empleado.ID)

Y fíjate que puedes hacer grupos con los nombres de los departamentos, ya que estarán repetidos (una vez por cada empleado). Entonces simplemente los agrupas, y sacas el nombre y el count(*).

Un saludo.
« Última modificación: 5 Enero 2012, 22:51 por ‭lipman » En línea

Anonymous250


Desconectado Desconectado

Mensajes: 463



Ver Perfil
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #7 en: 7 Enero 2012, 01:17 »

Hoy me e puesto a hacer consultas,me han ayudado ,y la verdad que no uso el INNER JOIN ni el OUT JOIN

E estado un par de horas para 29 consultas.......e terminado con dolor de cabeza  :xD y desorientacion.

Me han quedado unas 4 consultas o 5 sin hacer a ver si alguno me aconseja.Y la tabla Rango_sueldos,no establesco la relacion.Son las siguientes:

Obtener el nombre de los comerciales, la comisión, el sueldo mensual y el sueldo incrementado como sigue: si la comisión es menor que 50 €, aumentar un 25%; y si es igual o superior, aumentar un 12%.

Mostrar la localidad, nombre y sueldo del empleado cuyo grado es 2 o 3.

Obtener los departamentos sin empleados.

De los departamentos que tienen empleados, obtener el identificador del departamento, el sueldo máximo y el nombre del departamento.

Saludos
En línea

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #8 en: 7 Enero 2012, 11:52 »

Si te siguen faltando esas consultas, luego me pondré a ellas que tendré que hacer repaso de BBDD, pero eso si, aprovecho para preguntarte algo.

Cuando estás estudiando BBDD simplemente estudias con el código que has puesto? No tienes más código (INSERTs por ejemplo, para que puedas ver si es más gráfico).

Un saludo

Edito: La de "Departamentos sin empleados" es facil.
Departamentos sin empleados = Departamentos - Departamentos con empleados:

Código
  1. SELECT nombre FROM Departamento
  2. EXCEPT
  3. SELECT Departamento.nombre FROM Departamento JOIN Empleado ON(Empleado.Departamento_ID=Departament.Id)
« Última modificación: 7 Enero 2012, 13:46 por ‭lipman » En línea

Anonymous250


Desconectado Desconectado

Mensajes: 463



Ver Perfil
Re: Una Ayudita con subconsultas Sql relacionando varias tablas
« Respuesta #9 en: 8 Enero 2012, 11:16 »

Si te siguen faltando esas consultas, luego me pondré a ellas que tendré que hacer repaso de BBDD, pero eso si, aprovecho para preguntarte algo.

Cuando estás estudiando BBDD simplemente estudias con el código que has puesto? No tienes más código (INSERTs por ejemplo, para que puedas ver si es más gráfico).

Un saludo

Edito: La de "Departamentos sin empleados" es facil.
Departamentos sin empleados = Departamentos - Departamentos con empleados:

Código
  1. SELECT nombre FROM Departamento
  2. EXCEPT
  3. SELECT Departamento.nombre FROM Departamento JOIN Empleado ON(Empleado.Departamento_ID=Departament.Id)
Bueno nunca habia visto el EXCEPT ,creo que estoy utilizando el where not exitst y el Where not in.Subconsultas de hasta 4 SElECT Con un monton con and y or.......El caso es que a mi en clase me enseñaron super poco no entiendo como me mandan esta base de datos que se complica un montonazo,creo que el examen lo hicieron mas facil de lo que era,por que el ejercicio que estoy haciendo yo no lo hico de 30 personas nadie.
Y bueno sobre mis avances e de decir que e compredido mejor lo de las subconsultas y comparaciones,mi hermano me esta ayudando y van saliendo.
Lo que pasa que si son muy dificiles y implican 4 tablas por ejemplo,buff ahi que pensar un monton la clave son las relaciones.me quedan unas 35 consultas para terminar los ejercicios,espero que salgan a ver,culkier duda la pongo aki ok.
Saludos y gracias.
« Última modificación: 8 Enero 2012, 11:17 por Anonymous250 » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Llenar un treeview desde varias tablas
.NET (C#, VB.NET, ASP)
wolf_ca9 4 8,784 Último mensaje 7 Octubre 2011, 10:57
por userdavid77
Varias dudas, hibernar y despertar automáticamente [solucionado] « 1 2 »
GNU/Linux
lnvisible 14 12,953 Último mensaje 7 Julio 2011, 19:17
por lnvisible
Dudas para instalar tablas en OPHCRACK 3.2 (solucionado) « 1 2 »
Seguridad
Norlak 10 29,259 Último mensaje 13 Enero 2013, 03:17
por scan_41
[Ayuda] Unir varias tablas! :(
.NET (C#, VB.NET, ASP)
guillevcp 5 2,142 Último mensaje 14 Octubre 2011, 14:11
por Novlucker
Problema con subconsultas en mysql [solucionado]
Bases de Datos
bewa 3 5,142 Último mensaje 1 Abril 2012, 01:52
por bewa
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines