Encuentros externos sin JOIN

27/02/2006 - 11:43 por Mario Vázquez | Informe spam
Hola,

Estoy tratando de indexar una vista que contiene varias características que
no admiten su indexación. Una de ellas es el uso de LEFT OUTER JOIN.
¿Cómo puedo sustituir esta cláusula por una consulta normal?, esto es,
añadiendo las tablas a relacionar en el FROM, ¿cómo debo plantear la
cláusula WHERE para obtener los mismos resultados que LEFT JOIN?

Saludos,
Mario Vázquez

Preguntas similare

Leer las respuestas

#6 Penta
28/02/2006 - 13:16 | Informe spam
Hola.
Y por que no realizas la consulta con Left Join y desde ahi creas la
vista ?, o sea, la vista ya con lso datos como tu los quieres, entiendo
que esa es la idea de la vista xD

Salu2.
Penta.
Respuesta Responder a este mensaje
#7 Mario Vázquez
01/03/2006 - 00:32 | Informe spam
Se trata de crear una vista indexada, no una vista normal. No se pueden usar
encuentros externos, ni distinct, ni top, ni order by, ni max, ni count, ni
sum


"Penta" escribió en el mensaje
news:
Hola.
Y por que no realizas la consulta con Left Join y desde ahi creas la
vista ?, o sea, la vista ya con lso datos como tu los quieres, entiendo
que esa es la idea de la vista xD

Salu2.
Penta.

Respuesta Responder a este mensaje
#8 Mario Vázquez
01/03/2006 - 00:40 | Informe spam
La pregunta original, de todos modos, era cómo hacer un LEFT JOIN sin usar
LEFT JOIN, independientemente del tema de las vistas indexadas. Parece que
algo como esto podría funcionar:

Con left join:
select * from customers left join orders on orders.customerid =
customers.customerid

Sin join:
select * from customers, orders where customers.customerid =
orders.customerid OR order.customerid is null

pero no, no devuelve el mismo número de filas.

¿Alguna sugerencia?


"Mario Vázquez" escribió en el mensaje
news:
Hola,

Estoy tratando de indexar una vista que contiene varias características
que no admiten su indexación. Una de ellas es el uso de LEFT OUTER JOIN.
¿Cómo puedo sustituir esta cláusula por una consulta normal?, esto es,
añadiendo las tablas a relacionar en el FROM, ¿cómo debo plantear la
cláusula WHERE para obtener los mismos resultados que LEFT JOIN?

Saludos,
Mario Vázquez




Respuesta Responder a este mensaje
#9 Maxi
01/03/2006 - 13:21 | Informe spam
Hola, no puedes hacer eso porque es un inner., yo probe cion *= y no lo
soporta tampoco.
No vas a poder hacer ello y usar las vistas asi.


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Mario Vázquez" escribió en el mensaje
news:
La pregunta original, de todos modos, era cómo hacer un LEFT JOIN sin usar
LEFT JOIN, independientemente del tema de las vistas indexadas. Parece que
algo como esto podría funcionar:

Con left join:
select * from customers left join orders on orders.customerid =
customers.customerid

Sin join:
select * from customers, orders where customers.customerid =
orders.customerid OR order.customerid is null

pero no, no devuelve el mismo número de filas.

¿Alguna sugerencia?


"Mario Vázquez" escribió en el mensaje
news:
Hola,

Estoy tratando de indexar una vista que contiene varias características
que no admiten su indexación. Una de ellas es el uso de LEFT OUTER JOIN.
¿Cómo puedo sustituir esta cláusula por una consulta normal?, esto es,
añadiendo las tablas a relacionar en el FROM, ¿cómo debo plantear la
cláusula WHERE para obtener los mismos resultados que LEFT JOIN?

Saludos,
Mario Vázquez








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