OUTER JOIN no me muestra todas las filas de la otra tabla

22/11/2005 - 21:48 por amigo | Informe spam
Hola a todos,

Tengo un sp con OUTER JOIN que no funciona

SELECT lineas.fila, v_autfru.kb, v_autfru.kn, v_autfru.IdCond
FROM v_autfru RIGHT OUTER JOIN
LineasAutor lineas ON v_autfru.Especie =
lineas.idlinea
WHERE (v_autfru.Id = @id)

resultado dice:

1 4 5 201
3 5 6 305
5 4 7 402

yo quiero que diga
1 4 5 201
3 5 6 305
5 4 7 402
2
4
6
7
8
9
10

Quiero que siempre me muestre todas filas de la tabla LineasAutor
Se despide cordialmente,


amigo
 

Leer las respuestas

#1 Alejandro Mesa
22/11/2005 - 22:35 | Informe spam
amigo,

El problema esta en el filtro de la clausula "where". Recuerda, al resultado
del join, se le aplica el filtro de la clausula where, asi que solo las filas
del resultado donde se cumpla que (v_autfru.Id = @id) seran devueltas y como
las filas que tu deseas no cumplen el criterio pues entonces no salen. Trata
poniendo el criterio en una "select" que sera usada como tabla derivada.

SELECT lineas.fila, v.kb, v.kn, v.IdCond
FROM
(
select Especie, kb, kn, IdCond from v_autfru WHERE (v_autfru.Id = @id)
) as v
RIGHT OUTER JOIN
LineasAutor lineas
ON v.Especie = lineas.idlinea
go


AMB

"amigo" wrote:

Hola a todos,

Tengo un sp con OUTER JOIN que no funciona

SELECT lineas.fila, v_autfru.kb, v_autfru.kn, v_autfru.IdCond
FROM v_autfru RIGHT OUTER JOIN
LineasAutor lineas ON v_autfru.Especie =
lineas.idlinea
WHERE (v_autfru.Id = @id)

resultado dice:

1 4 5 201
3 5 6 305
5 4 7 402

yo quiero que diga
1 4 5 201
3 5 6 305
5 4 7 402
2
4
6
7
8
9
10

Quiero que siempre me muestre todas filas de la tabla LineasAutor
Se despide cordialmente,


amigo






Preguntas similares