FoxPro/Visual FoxPro - pregunta sobre sql

 
Vista:

pregunta sobre sql

Publicado por marcos (190 intervenciones) el 09/10/2003 01:26:15
hola a todos!!

quisiera saber como puedo hacer para utilizar varias tablas para una consulta sql (12 tablas). El tema es que lo hago con el inner join para relacionar las tablas hasta cierto nro de tablas, pero despues, al ejecutar y relacionar mas tablas, los 12 que tengo, me emite un error que dice: "hay demasiadas sub consultas"

ya probe utilizando vistas, pero como manejo miles y miles de registros se me vuelve muy pero muy lento!!! como puedo hacer para solucionar este problema, existe otra forma de hacerlo?? desde ya muchas gracias
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
sin imagen de perfil

RE:pregunta sobre sql

Publicado por DALSOM (612 intervenciones) el 09/10/2003 15:02:41
HOLA NO SE SI TE AYUDE MUCHO, PERO HE ESTADO TRABAJANDO CON MS SQL , Y HE VISTO ALGUNOS EJEMPLOS ASI

SELECT * FROM TABLA1 WHERE CONDICION1
UNION ALL
SELECT * FROM TABLA2 WHERE CONDICION2
UNION ALL
SELECT * FROM TABLA3 WHERE CONDICION3

NO SE SI FUNCIONE EN FOX, PERO INTENTELO.
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:pregunta sobre sql

Publicado por del toro (61 intervenciones) el 09/10/2003 18:23:57
SQL=Standard Query Language
Yo lo entiendo así... Lenguaje estandard para consultas de base de datos.

En Fox al utilizar un SELECT (para hacer una tabla temporal, CURSOR, o Tabla de solo lectura) mientras mas tablas incluyas mas lento se vuelbe.

Por eso yo lo que ago es seleccionar solo los datos que necesito de dos en dos tablas, o de tres en tres... generando así varias tablas temporales tmp1,tmp2,tmp3,etc.

despues, como los datos ya están filtrados, los filtro aún más, tomando tmp1,tmp2,tmp3 y obtengo la tabla Final TMP_F

yo he observado que aún así se vuelve lento... por eso lo que ultimamente he hecho es copiar los datos que necesito a tablas en el disco duro

set filtro to
set order to
copy to <file1> for <condicion>
Esto lo hago por cada tabla que quiero consultar
Nota: La razón de quitar el orden a la tabla (set order to) y el filtro es porque la copia se vuelve lentísima, al estar consultado el archivo índice.
los registros de una tabla no ordenada y no filtrada se copian de volada.

teniendo ya mis tablas temporales (para una consulta o una impresión) las tengo que abrir, indexar (sí de nuevo), relacionar, y usar.

Esto es lo que se ha ocurrido, y es lo que he practicado. probablemente después se me ocurra algo mejor.
NOTA: Esto lo hago en una PC, no se como se adaptaría si estuviera en un servidor.

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:pregunta sobre sql

Publicado por jimmy (40 intervenciones) el 09/10/2003 19:14:01
puedes realizar una consulta con las condicion de union en el where
eje: where tabla1.cod=tabla2.cod and ...
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