PDA

Ver la Versión Completa : Tablas relacionadas


mjjj
21-01-2008, 17:53:15
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:


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
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