Walter
20-03-2004, 23:54:57
Hola me gustaría que alguien me comente como funcionan las sentencias SQL
trabajo con Paradox y Delphi 5 estando las tablas en el servidor.
El archivo Bene.db tiene 262 registros con solo 2 campos
El archivo Clientes.db tiene 6000 registros y alrededor de 100 campos
El archivo Benellama.db tiene 2 registros y 8 campos.
Los 3 archivos tienen un campo llamado idcliente que es el que uso para los joins, con la relacion 1 a 1 entre Bene y clientes y 1 a muchos entre esos y Benellama.
Como resultado de la consulta necesito ver todos los registros del arch. Bene.db con los correspondientes datos que tengo guardados en el arch Clientes.db. Como la consulta tardaba bastante empece a cambiar el armado de la instrucción y las fui probando el Sql Explorer con el siguiente resultado.
1)
select * from bene.db b
left outer join clientes.db c on b.idcliente =c.idcliente
Tardo +-20 segundos. Me muestra 262 registros con todos sus datos.
2)
select * from clientes.db c
right outer join bene.db b on b.idcliente =c.idcliente
Tardo +-20 segundos. Me muestra 262 registros con todos sus datos.
3) decidi agregarle el arch benellama.db , usando un select distinct para eliminar los duplicados.
select distinct(idcliente), ape, domi, loca,pro from bene.db b
left outer join benellama.db d on d.idcliente=b.idcliente
left outer join clientes.db c on c.idcliente=b.idcliente
Tardo “+- 5 segundos”. Me muestra 262 registros con todos sus datos.
4) Por ultimo probé con:
select * from bene.db b
left outer join bene.db x on x.idcliente=b.idcliente
left outer join clientes.db c on c.idcliente=b.idcliente
Tardo “+- 5 segundos”. Me muestra 262 registros con todos sus datos y es similar a la 1 consulta.
Gracias de Antemano.
PD: Puede ocasionar algún problema trabajar con esta última consulta?
trabajo con Paradox y Delphi 5 estando las tablas en el servidor.
El archivo Bene.db tiene 262 registros con solo 2 campos
El archivo Clientes.db tiene 6000 registros y alrededor de 100 campos
El archivo Benellama.db tiene 2 registros y 8 campos.
Los 3 archivos tienen un campo llamado idcliente que es el que uso para los joins, con la relacion 1 a 1 entre Bene y clientes y 1 a muchos entre esos y Benellama.
Como resultado de la consulta necesito ver todos los registros del arch. Bene.db con los correspondientes datos que tengo guardados en el arch Clientes.db. Como la consulta tardaba bastante empece a cambiar el armado de la instrucción y las fui probando el Sql Explorer con el siguiente resultado.
1)
select * from bene.db b
left outer join clientes.db c on b.idcliente =c.idcliente
Tardo +-20 segundos. Me muestra 262 registros con todos sus datos.
2)
select * from clientes.db c
right outer join bene.db b on b.idcliente =c.idcliente
Tardo +-20 segundos. Me muestra 262 registros con todos sus datos.
3) decidi agregarle el arch benellama.db , usando un select distinct para eliminar los duplicados.
select distinct(idcliente), ape, domi, loca,pro from bene.db b
left outer join benellama.db d on d.idcliente=b.idcliente
left outer join clientes.db c on c.idcliente=b.idcliente
Tardo “+- 5 segundos”. Me muestra 262 registros con todos sus datos.
4) Por ultimo probé con:
select * from bene.db b
left outer join bene.db x on x.idcliente=b.idcliente
left outer join clientes.db c on c.idcliente=b.idcliente
Tardo “+- 5 segundos”. Me muestra 262 registros con todos sus datos y es similar a la 1 consulta.
Gracias de Antemano.
PD: Puede ocasionar algún problema trabajar con esta última consulta?