Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: KaRaLLo en 26 Febrero 2012, 16:13 pm



Título: Problema con outer join
Publicado por: KaRaLLo en 26 Febrero 2012, 16:13 pm
Hola tengo una problemilla con esta consulta :

8.- Visualiza los nombres de los alumnos de la tabla ALUMNO que no estén en la tabla ANTIGUO ni en la tabla NUEVO.


 ALUMNO;
+----------+------+------------+
| NOMBRE   | EDAD | LOCALIDAD  |
+----------+------+------------------+
| JUAN         |   20    | VIGO       |
| MANUEL     |   16    | PONTEAREAS |
| FERNANDO |   32 | TUI                   |
| PACA         |   25 | SALAMANCA     |
| PEPA         |   19 | LUGO               |
+----------+------+------------+


ANTIGUO;
+----------+------+-----------+
| NOMBRE   | EDAD | LOCALIDAD |
+----------+------+-----------+
| PEPA          |   19 | LUGO      |
| FERNANDO  |   32 | TUI       |
| JULIA         |   19 | CANARIAS  |
| CHONI       |   22 | MADRID    |
| PEPE         |   43 | BARCELONA |
+----------+------+-----------+


 NUEVO;
+----------+------+------------+
| NOMBRE   | EDAD | LOCALIDAD  |
+----------+------+------------+
| MANUEL     |   16 | PONTEAREAS |
| RODRIGO  |   32 | CORU�A        |
| PILI          |   43 | POLLO            |
| FERNANDO |   32 | TUI               |
+----------+------+------------+

Sé que hay que utilizar outer join pero no soy capaz de escribir bien la sintaxis y llevo ya horas ralladísimo.

Si útilizo por ejemplo los left y right outers join y quitando los NULL me acaba devolviendo los que coinciden y necesito justamente todos los que NO se repitan



Gracias :)


Título: Re: Problema con outer join
Publicado por: Novlucker en 27 Febrero 2012, 04:47 am
NOT IN ;)

Saludos


Título: Re: Problema con outer join
Publicado por: Anonymous250 en 28 Febrero 2012, 03:20 am
Código:
Select DiSTINCT ALUMNO.NOMBRE 
FROM ALUMNO ,ANTIGUO,NUEVO
WHERE ALUMNO.NOMBRE NOT IN
("ANTIGUO.NOMBRE,NUEVO.NOMBRE");
Creo que esta mal, pero es algo asi claro que se puede hacer diferente con lo que comentas los outer joins y demas.
No se me dan bien los outer join ni inner join nunca les coji el truco,pero,si te sirve lo que acavo de pensar ,pues nose,al menos para que cojas la idea.

Yo tenia que hacer un examen de esto  :¬¬ hahahaha,valla hombre tengo que repazarlo.


Título: Re: Problema con outer join
Publicado por: KaRaLLo en 29 Febrero 2012, 14:27 pm
Diosss llevo 2 semanas con esta consulta y nada de nada he probado con outers, con not in etcccc....

Esto es lo mas "limpio" que he sacado pero.... nada :

Código
  1. SELECT ALUMNO.NOMBRE
  2. FROM ALUMNO,ANTIGUO,NUEVO
  3. WHERE ALUMNO.NOMBRE
  4. AND ALUMNO.NOMBRE=NUEVO.NOMBRE
  5. AND ALUMNO.NOMBRE=ANTIGUO.NOMBRE
  6. NOT IN (ANTIGUO.NOMBRE,NUEVO.NOMBRE)
  7.  


Título: Re: Problema con outer join
Publicado por: HdM en 29 Febrero 2012, 15:21 pm
Veo que tienes un cacao montao importante. La última consulta que pones no hay por dónde cogerla.

Creo que no tienes claro el uso de las subconsultas. ¿Cómo sacarías los nombres de alumnos que no estén en antiguo? Debes hacer una consulta dentro del WHERE que extraiga los nombres de esa tabla. Sabiendo eso y con el uso del NOT IN ya sabes como añadir la otra condición solicitada.

Saludos.