[Php-avanzado] Consulta de conjuntos aplicada a SQL

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mie Nov 25 16:39:41 ARST 2009


Hola Germán,

	la solución al problema no es simple, y por tanto es posible que
obtengas una query compleja.

	Si vas a usar UNION, más vale hacé UNION de todo y después filtrá, en
lugar de filtrar, hacer union y después volver a filtrar.

	Por otra parte, yo lo pensaría haciendo relaciones con la tabla que
tiene todos los elmentos. Me pierde un poco que tengas la tabla N, la L
y después que digas que en la N tenés una referencia a la L... esto
quiere decir que el primer listado de la tabla N no está completo, y que
son 2 tablas pero que hablás como si fueran 3.

	Si enviás las estructuras y el vuelco de algunos datos, sería más fácil
entender la situación.

	Saludos!

El mié, 25-11-2009 a las 15:25 -0200, German Fernandez escribió:
> Tengo un problema:
>  
> Dadas dos tablas con los siguientes elementos:
>  
> Tabla N
> 1
> 2
> 3
> 4
> 5
>  
> Tabla L
> A
> B
> C
> D
> E
>  
> Agregando que en la tabla N tengo referencias a la tabla L  de la
> siguiente manera:
>  
> 1 - A
> 2 - B
> 3 - C
> 4 - A
>  
> Lo q yo necesito, es realizar una consulta SQL que traiga como
> resultado los elementos de N con referencias a la tabla L, los
> elementos de N sin referencias a la tabla L ( hasta ahí con un LEFT o
> RIGTH JOIN no tendría problemas) y los valores de la tabla( e aquí el
> problema)  L que no este referenciado en la tabla N.
> Es decir, según el ejemplo el resultado debería ser:
>  
> 1 - A
> 2 - B
> 3 - C
> 4 - A
> NULL - E
> 5 - NULL
>  
> La solución que encontré es hacer un LEFT JOIN y luego anexar los
> registros faltantes con un UNION y realizando la inversa, es decir con
> un RIGHT excluyendo los valores repetidos. Pero debido a que en el
> problema original las Tablas L y N son subconsultas, la consulta final
> se hace engorrosa de leer y muy grande. Por esto realizo la consulta,
> para saber si hay una operación de conjuntos que no sea con UNION.
>  
> Desde ya muchas gracias German  Fernadez
>  
>  
> 
> 
> ______________________________________________________________________
> ¡Revisá de un vistazo si tenés correos nuevos! Ingresá a tu Hotmail
> desde tu Messenger. ¡Probalo ahora!
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado