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

#1 Maxi
27/02/2006 - 12:49 | Informe spam
Hola, podrias pasarnos que estas haciendo y que resultado deseas obtener?


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


"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
#2 Mario Vázquez
27/02/2006 - 15:53 | Informe spam
Hola Maxi,

Simplemente quiero construir la sentencia siguiente sin usar LEFT OUTER
JOIN:

USE Northwind
SELECT * FROM customers c LEFT JOIN orders o ON o.customerid = c.customerid

Esta sentencia me da un número de filas superior que la consulta equivalente
usando INNER JOIN, puesto que me devuelve también los clientes que no tienen
ningún pedido.
El motivo para obtener esto, es poder eliminar los LEFT JOIN de algunas
vistas con el fin de poderlas indexar.

Saludos,
Mario Vázquez


"Maxi" escribió en el mensaje
news:
Hola, podrias pasarnos que estas haciendo y que resultado deseas obtener?


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


"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
#3 Maxi
27/02/2006 - 18:32 | Informe spam
Hola, hasta donde yo se no tenes forma de hacer eso, ahora bien, (no me fije
en la DOC) pero que extraño que no se permirtan indexar vistas con Left join
:-(, lo probaste o lo leiste


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


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

Simplemente quiero construir la sentencia siguiente sin usar LEFT OUTER
JOIN:

USE Northwind
SELECT * FROM customers c LEFT JOIN orders o ON o.customerid =
c.customerid

Esta sentencia me da un número de filas superior que la consulta
equivalente usando INNER JOIN, puesto que me devuelve también los clientes
que no tienen ningún pedido.
El motivo para obtener esto, es poder eliminar los LEFT JOIN de algunas
vistas con el fin de poderlas indexar.

Saludos,
Mario Vázquez


"Maxi" escribió en el mensaje
news:
Hola, podrias pasarnos que estas haciendo y que resultado deseas obtener?


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


"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
#4 Mario Vázquez
27/02/2006 - 22:01 | Informe spam
No sólo no se puede usar LEFT JOIN, sinó que hay un montón de restricciones
más que me están haciendo plantear si realmente vale la pena usar vistas
indexadas o es mejor esperar a que esto evolucione un poco...
Este artículo explica un poco el lío:
http://www.sqlteam.com/item.asp?ItemID15

Gracias de todos modos.

Saludos,
Mario Vázquez


"Maxi" escribió en el mensaje
news:edc%
Hola, hasta donde yo se no tenes forma de hacer eso, ahora bien, (no me
fije en la DOC) pero que extraño que no se permirtan indexar vistas con
Left join :-(, lo probaste o lo leiste


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


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

Simplemente quiero construir la sentencia siguiente sin usar LEFT OUTER
JOIN:

USE Northwind
SELECT * FROM customers c LEFT JOIN orders o ON o.customerid =
c.customerid

Esta sentencia me da un número de filas superior que la consulta
equivalente usando INNER JOIN, puesto que me devuelve también los
clientes que no tienen ningún pedido.
El motivo para obtener esto, es poder eliminar los LEFT JOIN de algunas
vistas con el fin de poderlas indexar.

Saludos,
Mario Vázquez


"Maxi" escribió en el mensaje
news:
Hola, podrias pasarnos que estas haciendo y que resultado deseas
obtener?


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


"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
#5 Maxi [MVP]
28/02/2006 - 01:25 | Informe spam
ops, tienes razon, yo para lo que las uso nunca he tenido la necesidad de
hacerles un Left join ;-)


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Mario Vázquez" escribió en el mensaje
news:O6WAlD%
No sólo no se puede usar LEFT JOIN, sinó que hay un montón de
restricciones más que me están haciendo plantear si realmente vale la pena
usar vistas indexadas o es mejor esperar a que esto evolucione un poco...
Este artículo explica un poco el lío:
http://www.sqlteam.com/item.asp?ItemID15

Gracias de todos modos.

Saludos,
Mario Vázquez


"Maxi" escribió en el mensaje
news:edc%
Hola, hasta donde yo se no tenes forma de hacer eso, ahora bien, (no me
fije en la DOC) pero que extraño que no se permirtan indexar vistas con
Left join :-(, lo probaste o lo leiste


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


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

Simplemente quiero construir la sentencia siguiente sin usar LEFT OUTER
JOIN:

USE Northwind
SELECT * FROM customers c LEFT JOIN orders o ON o.customerid =
c.customerid

Esta sentencia me da un número de filas superior que la consulta
equivalente usando INNER JOIN, puesto que me devuelve también los
clientes que no tienen ningún pedido.
El motivo para obtener esto, es poder eliminar los LEFT JOIN de algunas
vistas con el fin de poderlas indexar.

Saludos,
Mario Vázquez


"Maxi" escribió en el mensaje
news:
Hola, podrias pasarnos que estas haciendo y que resultado deseas
obtener?


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


"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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida