JOIN
 Crea un nuevo fichero de base de datos fusionando ficheros o registros de
 dos áreas de trabajo
------------------------------------------------------------------------------
 Sintaxis

     JOIN WITH <xcAlias> TO <xcBasedeDatos>
        FOR <lCondición> [FIELDS <lista idCampos>]

 Argumentos

     WITH <xcAlias> es el nombre del área de trabajo que va a fusionarse
     con los registros del área de trabajo actual. Puede especificarlo como
     un alias literal o como una expresión de caracteres encerrada entre
     paréntesis.

     TO <xcBasedeDatos> es el nombre de la base de datos destino,
     especificado como nombre de fichero literal o como una expresión de
     caracteres encerrada entre paréntesis.

     FOR <lCondición> selecciona sólo los registros que cumplen la condición
     especificada.

     FIELDS <lista idCampos> es la proyección de los campos de ambas
     áreas de trabajo en el nuevo fichero de base de datos. Para especificar
     campos en el área de trabajo secundaria, debe hacerse referencia a
     ellos con un alias. Si no se especifica la cláusula FIELDS, todos los
     campos del área de trabajo principal se incluyen en el fichero de base
     de datos destino.

 Descripción

     JOIN crea un nuevo fichero de base de datos fusionando registros y
     campos seleccionados de dos áreas de trabajo, según una condición
     general. JOIN actúa haciendo un recorrido completo por el área de
     trabajo secundaria para cada registro del área de trabajo principal,
     evaluando la condición en cada registro del área de trabajo
     secundaria. Cuando <lCondición> es verdadera (.T.), se crea un nuevo
     registro en el fichero de base de datos destino utilizando los campos
     especificados para ambas áreas de trabajo.

     Si SET DELETED está desactivado (OFF), se procesan los registros
     borrados de ambos ficheros origen (es decir, los dos ficheros
     fusionados con JOIN). No obstante, el estado de borrado no se mantiene
     en la <xcBasedeDatos> destino. Ningún registro del fichero destino se
     marca como borrado, independientemente de su estado de borrado en
     cualquiera de los ficheros origen.

     Si SET DELETED está activado (ON), no se procesan los registros
     borrados en ninguno de los ficheros fuente, por lo que los registros
     borrados no forman parte de la <xcBasedeDatos> destino. Análogamente,
     los registros filtrados no se procesan y no se traspasan al fichero
     destino.

     ¡Advertencia!: El número de registros procesados será LASTREC() del
     área de trabajo principal multiplicado por LASTREC() del área de
     trabajo secundaria. Por ejemplo, si tienen dos ficheros de base datos
     con cien registros cada uno, el número de registros que JOIN procesa es
     equivalente a procesar secuencialmente un fichero de base de datos de
     10.000 registros. Por ello, debe utilizar este mandato con cuidado.

 Ejemplos

      Este ejemplo fusiona mediante JOIN el fichero Cliente.dbf con
        Facturas.dbf para producir Compras.dbf:

        USE Facturas NEW
        USE Clientes NEW
        JOIN WITH Facturas TO Compras;
           FOR Ultimo = Facturas->Ultimo;
           FIELDS Primero, Ultimo, Facturas->Numero, ;
              Facturas->Cantidad

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: SET RELATION