Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tablas relacionadas (https://www.clubdelphi.com/foros/showthread.php?t=52439)

mjjj 21-01-2008 17:53:15

Tablas relacionadas
 
Hola amigos, una consulta con el afan de que mi aplicacion vaya mas rapido.

Utilizo delphi 2006, firebird 2.0, IBExpert y componentes interbase
Tengo 2 tablas, hago una busqueda en una para obtener el cierto codigo ligado a esta, luego con este codigo busco en la otra tabla. Este es el codigo que utilizo:

Código Delphi [-]
ibquery4.close;
ibquery4.SQL.clear;
ibquery4.SQL.Add('Select * from PRESUPUESTO');
IBQUERY4.SQL.ADD('WHERE EMPRESA='+quotedstr(edit1.text));
IBQUERY4.SQL.ADD('AND (PERIODO = '+ QUOTEDSTR(edit2.text));
ibquery4.open;
 
if ibquery4.isempty = false then
begin
ibquery2.close;
ibquery2.sql.clear;
ibquery2.sql.add('select * from compras');
ibquery2.sql.add('where empresa='+quotedstr(edit1.text));
ibquery2.sql.add('AND codigo='+quotedstr(ibquery4.fieldbyname('codigo').asstring));
ibquery2.open;
end;

Funciona bien, pero queria saber si es que existe una forma que funcione mas rapido que esta... ya que aqui hago 2 consultas...

Existe alguna forma de relacionar esta dos tablas y que funciona mas rapido

Gracias... espero que pueda ayudar.

Saludos

juanelo 21-01-2008 18:06:46

Código SQL [-]
select PRESUPUESTO.*,COMPRAS.* FROM PRESUPUESTO
INNER JOIN COMPRAS on PRESUPUESTO.CODIGO=COMPRAS.CODIGO 
where EMPRESA=NumeroEmpresa

Puede ser left o right dependiendo de como este tu relacion entre las tablas.
Personalmente nunca hago la seleccion de todos los campos de una tabla (*) ya que esto suele ser innecesario.
Saludos


La franja horaria es GMT +2. Ahora son las 03:42:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi