por qué?

15/06/2004 - 23:25 por Emerson | Informe spam
saben el porqué (creo que si), mi query no muestra resultados cuando aplico
condición (filtro) en las dos tablas.
si solamente aplico un filtro en una tabla, entrega el resultado.

SELECT Topico.Id, Topico.nombre
FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico Topico.Id
con este where muestra un registro
WHERE (Topico.Id = 6)
con este where no muestra datos
WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)

qué debo hacer,

muchas gracias por cualquier ayuda,

Emerson

Preguntas similare

Leer las respuestas

#1 MAXI
16/06/2004 - 02:24 | Informe spam
hola y hay registros que cumplan esa condicion?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:
saben el porqué (creo que si), mi query no muestra resultados cuando


aplico
condición (filtro) en las dos tablas.
si solamente aplico un filtro en una tabla, entrega el resultado.

SELECT Topico.Id, Topico.nombre
FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico > Topico.Id
con este where muestra un registro
WHERE (Topico.Id = 6)
con este where no muestra datos
WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)

qué debo hacer,

muchas gracias por cualquier ayuda,

Emerson


Respuesta Responder a este mensaje
#2 Emerson
16/06/2004 - 15:53 | Informe spam
Maxi,

bajo este WHERE (Topico.Id = 6)
[
SELECT Topico.Id, Topico.nombre, Respuesta.feha
FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico Topico.Id
WHERE (Topico.Id = 6)
]
el resultado es algo así

Id | nombre | fecha
1 top 1 NULL

pero bajo WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
no entrega ningún resultado.

pienso que puede ser un problema en la generación de la query, al exigir
condicion en las dos tabla me entrega 0 registros, aunque le este obligando
a que muestre todo de la tabla Topico (RIGHT OUTER JOIN)

cualquier ayuda muchas gracias,

Emerson

"MAXI" escribió en el mensaje
news:%
hola y hay registros que cumplan esa condicion?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:
> saben el porqué (creo que si), mi query no muestra resultados cuando
aplico
> condición (filtro) en las dos tablas.
> si solamente aplico un filtro en una tabla, entrega el resultado.
>
> SELECT Topico.Id, Topico.nombre, Respuesta.feha
> FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico > > Topico.Id
> con este where muestra un registro
> WHERE (Topico.Id = 6)
> con este where no muestra datos
> WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
>
> qué debo hacer,
>
> muchas gracias por cualquier ayuda,
>
> Emerson
>
>


Respuesta Responder a este mensaje
#3 Javier Loria
16/06/2004 - 16:11 | Informe spam
Hola:
No estoy seguro, pero creo que confundes las condiciones del JOIN con
las del WHERE.
Cuando usas un RIGHT JOIN es cierto que muestras todas las filas de la tabla
topico incluyendo las que NO cumplen la condicion del ON, pero una vez que
se hace el JOIN TODAS las filas deben cumplir el WHERE.
Eventualmente puedes cambiar la sintaxis para obtener el resultado que
deseas asi:
= SELECT Topico.ID
, Topico.Nombre
, Respuesta.Fecha
FROM Respuesta
RIGHT OUTER JOIN Topico
ON Respuesta.Id_Topico=Topico_ID
AND Respuesta.id_usuario = 1
WHERE (Topico.Id = 6)
=Esta sintaxis deberia dar el resultado deseado, pero si hay muchas
condiciones es muy confusa. Prefiero la siguiente que es un poco mas clara:
= SELECT Topico.ID
, Topico.Nombre
, Respuesta.Fecha
FROM Respuesta
RIGHT OUTER JOIN Topico
ON Respuesta.Id_Topico=Topico_ID
WHERE (Topico.Id = 6)
AND (Respuesta.id_usuario = 1 OR Respuesta.ID_Usuario IS NULL)
= Espero te sirva,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Emerson <emerson_sacar_arroba_leshalles.cl> escribio:
Maxi,

bajo este WHERE (Topico.Id = 6)
[
SELECT Topico.Id, Topico.nombre, Respuesta.feha
FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico
= Topico.Id
WHERE (Topico.Id = 6)
]
el resultado es algo así

Id | nombre | fecha
1 top 1 NULL

pero bajo WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
no entrega ningún resultado.

pienso que puede ser un problema en la generación de la query, al
exigir condicion en las dos tabla me entrega 0 registros, aunque le
este obligando a que muestre todo de la tabla Topico (RIGHT OUTER
JOIN)

cualquier ayuda muchas gracias,

Emerson

"MAXI" escribió en el mensaje
news:%
hola y hay registros que cumplan esa condicion?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
news:
saben el porqué (creo que si), mi query no muestra resultados
cuando aplico condición (filtro) en las dos tablas.
si solamente aplico un filtro en una tabla, entrega el resultado.

SELECT Topico.Id, Topico.nombre, Respuesta.feha
FROM Respuesta RIGHT OUTER JOIN Topico ON
Respuesta.id_topico = Topico.Id
con este where muestra un registro
WHERE (Topico.Id = 6)
con este where no muestra datos
WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)

qué debo hacer,

muchas gracias por cualquier ayuda,

Emerson
Respuesta Responder a este mensaje
#4 Antonio Soto
16/06/2004 - 16:41 | Informe spam
Hola Emerson,

Veamos, el RIGHT OUTER JOIN te muestra todos los registros de Topico y solo
los de Respuesta asociados. Después de eso tu estás aplicando un Where, es
decir estás filtrando ese resultado. Como dice Maxi, me da que no existen
registros que cumplan esas condiciones

Para hacer lo que quieres podrías utilizar una función sobre la tabla
Respuesta, pasándole como parámetro el filtro que quieras aplicar

"Emerson" <emerson_sacar_arroba_leshalles.cl> wrote in message
news:
Maxi,

bajo este WHERE (Topico.Id = 6)
[
SELECT Topico.Id, Topico.nombre, Respuesta.feha
FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico > Topico.Id
WHERE (Topico.Id = 6)
]
el resultado es algo así

Id | nombre | fecha
1 top 1 NULL

pero bajo WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
no entrega ningún resultado.

pienso que puede ser un problema en la generación de la query, al exigir
condicion en las dos tabla me entrega 0 registros, aunque le este


obligando
a que muestre todo de la tabla Topico (RIGHT OUTER JOIN)

cualquier ayuda muchas gracias,

Emerson

"MAXI" escribió en el mensaje
news:%
> hola y hay registros que cumplan esa condicion?
>
>
>
>
> Maxi
>
> Buenos Aires - Argentina
>
> Desarrollador .NET 3 Estrellas
>
> Mail: Maxi_accotto[arroba]speedy.com.ar
>
> MSN:
>
>
> "Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
> news:
> > saben el porqué (creo que si), mi query no muestra resultados cuando
> aplico
> > condición (filtro) en las dos tablas.
> > si solamente aplico un filtro en una tabla, entrega el resultado.
> >
> > SELECT Topico.Id, Topico.nombre, Respuesta.feha
> > FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico
> > Topico.Id
> > con este where muestra un registro
> > WHERE (Topico.Id = 6)
> > con este where no muestra datos
> > WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
> >
> > qué debo hacer,
> >
> > muchas gracias por cualquier ayuda,
> >
> > Emerson
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Emerson
16/06/2004 - 16:54 | Informe spam
gracias a todos, lo revisaré.

EG



"Antonio Soto" escribió en el mensaje
news:%
Hola Emerson,

Veamos, el RIGHT OUTER JOIN te muestra todos los registros de Topico y


solo
los de Respuesta asociados. Después de eso tu estás aplicando un Where, es
decir estás filtrando ese resultado. Como dice Maxi, me da que no existen
registros que cumplan esas condiciones

Para hacer lo que quieres podrías utilizar una función sobre la tabla
Respuesta, pasándole como parámetro el filtro que quieras aplicar

"Emerson" <emerson_sacar_arroba_leshalles.cl> wrote in message
news:
> Maxi,
>
> bajo este WHERE (Topico.Id = 6)
> [
> SELECT Topico.Id, Topico.nombre, Respuesta.feha
> FROM Respuesta RIGHT OUTER JOIN Topico ON Respuesta.id_topico > > Topico.Id
> WHERE (Topico.Id = 6)
> ]
> el resultado es algo así
>
> Id | nombre | fecha
> 1 top 1 NULL
>
> pero bajo WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
> no entrega ningún resultado.
>
> pienso que puede ser un problema en la generación de la query, al exigir
> condicion en las dos tabla me entrega 0 registros, aunque le este
obligando
> a que muestre todo de la tabla Topico (RIGHT OUTER JOIN)
>
> cualquier ayuda muchas gracias,
>
> Emerson
>
> "MAXI" escribió en el mensaje
> news:%
> > hola y hay registros que cumplan esa condicion?
> >
> >
> >
> >
> > Maxi
> >
> > Buenos Aires - Argentina
> >
> > Desarrollador .NET 3 Estrellas
> >
> > Mail: Maxi_accotto[arroba]speedy.com.ar
> >
> > MSN:
> >
> >
> > "Emerson" <emerson_sacar_arroba_leshalles.cl> escribió en el mensaje
> > news:
> > > saben el porqué (creo que si), mi query no muestra resultados cuando
> > aplico
> > > condición (filtro) en las dos tablas.
> > > si solamente aplico un filtro en una tabla, entrega el resultado.
> > >
> > > SELECT Topico.Id, Topico.nombre, Respuesta.feha
> > > FROM Respuesta RIGHT OUTER JOIN Topico ON


Respuesta.id_topico
> > > > Topico.Id
> > > con este where muestra un registro
> > > WHERE (Topico.Id = 6)
> > > con este where no muestra datos
> > > WHERE (Topico.Id = 6) AND (Respuesta.id_usuario = 1)
> > >
> > > qué debo hacer,
> > >
> > > muchas gracias por cualquier ayuda,
> > >
> > > Emerson
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida