usar join... sim ou não.

06/03/2006

Olá passoal tenho uma grande duvida.
tenho esses dois códigos, e funcionam perfeitamente

PRIMEIRO CÓDIGO
    dmContaPagar.qryContaPagar.Close;
    dmContaPagar.qryContaPagar.Sql.Clear;
    dmContaPagar.qryContaPagar.Sql.Add(´select ctp.*, form.nome´);
    dmContaPagar.qryContaPagar.Sql.Add(´from contapagar ctp, fornecedor form´);
    if Trim(edtFornecedor.Text) = ´´ then
      dmContaPagar.qryContaPagar.Sql.Add(´where ctp.id_fornecedor is not null´)
    else
    begin
      dmContaPagar.qryContaPagar.Sql.Add(´where upper(form.nome) Like :nome´);
      dmContaPagar.qryContaPagar.ParamByName(´nome´).AsString := UpperCase(edtFornecedor.Text) + ´¬´;
    end;
    dmContaPagar.qryContaPagar.Sql.Add(´and (form.id_fornecedor = ctp.id_fornecedor)´);
    dmContaPagar.qryContaPagar.Sql.Add(´order by dataemissao´);
    dmContaPagar.qryContaPagar.Open;


SEGUNDO CÓDIGO
    dmContaPagar.qryContaPagar.Close;
    dmContaPagar.qryContaPagar.Sql.Clear;
    dmContaPagar.qryContaPagar.Sql.Add(´select ctp.*, form.nome´);
    dmContaPagar.qryContaPagar.Sql.Add(´from contapagar ctp´);
dmContaPagar.qryContaPagar.Sql.Add(´ineer join formecedor form on (form.id_fornecedor = ctp.id_fornecedor)´);
    if Trim(edtFornecedor.Text) = ´´ then
      dmContaPagar.qryContaPagar.Sql.Add(´where ctp.id_fornecedor is not null´)
    else
    begin
      dmContaPagar.qryContaPagar.Sql.Add(´where upper(form.nome) Like :nome´);
      dmContaPagar.qryContaPagar.ParamByName(´nome´).AsString := UpperCase(edtFornecedor.Text) + ´¬´;
    end;
    dmContaPagar.qryContaPagar.Sql.Add(´order by dataemissao´);
    dmContaPagar.qryContaPagar.Open;


A pergunta é a seguinte.

Qual a melhor forma de usar tabelas relacionadas?
Pelo que andei vendo, o join está implicito.

obrigado desde já
Adilson


Pecchiai

Respostas

07/03/2006

Aroldo Zanela

Colega,

Que eu saiba, não há diferenças de performance entre uma ou outra forma. Entretanto, prefiro usar explicitamento o JOIN (Inner, Cross, Left, Right) ao invés de efetuar a associação no Where, pois acho que o código fica mais legível.


Responder Citar