SQL - Select anidados

 
Vista:

Select anidados

Publicado por David Eduardo (2 intervenciones) el 09/05/2003 16:10:15
En un Select junto 3 tablas distintas y comparo la primera con las otras dos, así: "Select t1.nombre, t2.valor, t3.cantidad from t1,t2,t3 where t1.nombre=t2.nombre and t1.nombre=t3.nombre", ¿Como muestro los registros que no estan en una tabla pero si en las otras dos tablas?

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Select anidados

Publicado por Isaías Islas (5072 intervenciones) el 09/05/2003 18:37:57
Hola David

Si bien la estructura de SQL que estas utlizando funciona, no quiere decir que se lo mas optimo, ya que este tipo de programación DEGRADAN en gran medida el rendimiento de tu servidor, memoria, principalmente.

Te reocomiendo que cambies a INNER JOIN, LEFT JOIN o RIGHT JOIN para tal proposito, aqui un ejemplo:

----- Este codigo aunque funciona; no es correcto usarlo asi
SELECT Apellido, Nombre FROM Clientes, Cuentas
WHERE Clientes.Cliente_ID = Cuentas.Cliente_ID
AND Cuentas.Nivel = ‘VIP’

-- Lo correcto es:

SELECT Apellido, Nombre FROM Clientes INNER JOIN Cuentas
ON Clientes.Cliente_ID = Cuentas.Cliente_ID
WHERE Cuentas.Nivel = ‘VIP’
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Select anidados

Publicado por David Eduardo (2 intervenciones) el 09/05/2003 18:57:39
Hola Isaías, Gracias por la respuesta, muy aclaratoria para óptimizar mi consulta, ahora ¿Como muestro los registros que no estan en una tabla pero si en las otras dos tablas?.
Por ejemplo:
El Articulo X aparece vendido en la tabla Enero, Febrero y no en Marzo.
El Articulo Y aparece vendido sólo en la tabla Marzo.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Select anidados

Publicado por Isaías Islas (5072 intervenciones) el 10/05/2003 00:42:36
con RIGT JOIN (Son de la tabla de la derecha), LEFT JOIN, son de la tabla de la izquierda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar