JOIN
 Cria um novo arquivo de dados através da intercalaçao de registros/campos
 de duas áreas de trabalho
------------------------------------------------------------------------------

 Sintaxe

     JOIN WITH <xcAlias> TO <xcArquivo>
        FOR <lCondiçao> [FIELDS <idLista Campos>]

 Argumentos

     WITH <xcAlias> é o nome da área de trabalho a ser intercalada com
     registros da área de trabalho corrente.  Esta área pode ser
     especificada literalmente ou por expressao caractere entre parênteses.

     TO <xcArquivo> é o nome do arquivo de dados destino e pode ser
     especificado literalmente ou por expressao caractere entre parênteses.

     FOR <lCondiçao> seleciona somente os registros que atendem a
     condiçao especificada.

     FIELDS <idLista Campos> é a projeçao de campos provenientes das
     duas áreas de trabalho dentro do novo arquivo de dados.  Para
     especificar quaisquer campos na área de trabalho secundária, refira-se
     a eles pelo seu alias.  Caso a cláusula FIELDS nao esteja especificada,
     todos os campos da área de trabalho primária serao incluídos no arquivo
     de dados destino.

 Descriçao

     O comando JOIN cria um novo arquivo de dados através da intercalaçao de
     registros selecionados provenientes de duas áreas de trabalho.  É uma
     projeçao de campos e uma seleçao de registros de duas áreas de trabalho
     que formam um novo arquivo de dados com base numa condiçao geral.  JOIN
     opera varrendo completamente a área de trabalho secundária para cada
     registro da área de trabalho primária, avaliando a condiçao de cada
     registro na área de trabalho secundária.  Quando a <lCondiçao> é
     verdadeira (.T.), um novo registro é criado no arquivo de dados
     destino, usando os campos especificados das duas áreas de trabalho.

     -----------------------------------------------------------------------
     . Aviso

     Observe que o número de registros processados será o LASTREC() da área
     de trabalho primária multiplicado pelo LASTREC() da área de trabalho
     secundária.  Por exemplo, se você tem dois arquivos de dados com 100
     registros cada, o número de registros que o comando JOIN processa é o
     equivalente a processar sequencialmente um único arquivo de dados com
     10.000 registros.  Por tudo isso é válida a máxima, "use este comando
     com extremo cuidado".
     -----------------------------------------------------------------------

 Exemplos

     O seguinte exemplo usa o comando JOIN para unir o arquivo Customer.dbf
     ao Invoices.dbf para produzir o arquivo Purchases.dbf:

     USE Invoices NEW
     USE Customers NEW
     JOIN WITH Invoices TO Purchases;
        FOR Last = Invoices->Last;
        FIELDS First, Last, Invoices->Number, Invoices->Amount

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: SET RELATION