Que significa

rrgg
06 de Junio del 2005
hola a todos...
alguien me puede explicar que significa o para que se usa (+) en un where de un select.

Gracias de antemano

Rodolfo Reyes
06 de Junio del 2005
Este operador sirve para hacer lo que en SQL normal se conoce como un JOIN.

supon que tienes estas dos tablas:

Tabla alumnos:
alumno nombre
---------- -----------
001 a
002 b
003 c
004 d

Tabla Sistencia:

alumno fecha
---------- --------
001 01/01/2005
002 01/01/2005
003 01/01/2005
001 01/02/2005
003 01/02/2005

Si quieres hacer un query para ver cuantas veces asistio cada alumno:

select a.alumno, a.nombre, count(b.fecha)
from alumnos a, asistencia b
where a.alumno = b.alumno
group by a.alumno, a.nombre

Esto te devolveria:
alumno nombre contador
001 a 2
002 b 1
003 c 2


Si te das cuenta no salio el alumno 004, porque nunca nunca asistio. Pero en tu listado deberia de tener un 0.

Entonces, para que salga haces lo siguiente:

select a.alumno, a.nombre, count(b.fecha)
from alumnos a, asistencia b
where a.alumno = b.alumno(+)
group by a.alumno, a.nombre

Esto te devolveria:
alumno nombre contador
001 a 2
002 b 1
003 c 2
004 d 0

En el lado donde pones el (+), es donde esta el campo en cuya tabla no este presente información relacionada.