[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 JOIN 
 Create a new database file by merging records/fields from two work areas
------------------------------------------------------------------------------
 Syntax

     JOIN WITH <xcAlias> TO <xcDatabase>
        FOR <lCondition> [FIELDS <idField list>]

 Arguments

     WITH <xcAlias> is the name of the work area to merge with records
     from the current work area.  You can specify it either as a literal
     alias or as a character expression enclosed in parentheses.

     TO <xcDatabase> is the name of the target database file specified
     either as a literal filename or as a character expression enclosed in
     parentheses.

     FOR <lCondition> selects only records meeting the specified
     condition.

     FIELDS <idField list> is the projection of fields from both work
     areas into the new database file.  To specify any fields in the
     secondary work area, reference them with the alias.  If the FIELDS
     clause is not specified, all fields from the primary work area are
     included in the target database file.

 Description

     JOIN creates a new database file by merging selected records and fields
     from two work areas based on a general condition.  JOIN works by making
     a complete pass through the secondary work area for each record in the
     primary work area, evaluating the condition for each record in the
     secondary work area.  When the <lCondition> is true (.T.), a new record
     is created in the target database file using the FIELDS specified from
     both work areas.

     If SET DELETED is OFF, deleted records in both source files (i.e., the
     two files being JOINed) are processed.  However, their deleted status is
     not retained in the target <xcDatabase>.  No record in the target file
     is marked for deletion regardless of its deleted status in either of the
     source files.

     If SET DELETED is ON, no deleted records are processed in either of the
     source files.  Thus, deleted records do not become part of the target
     <xcDatabase>.  Similarly, filtered records are not processed and do not
     become part of the target file.

     Warning!  The number of records processed will be the LASTREC() of
     the primary work area multiplied by the LASTREC() of the secondary work
     area.  For example, if you have two database files with 100 records
     each, the number of records JOIN processes is the equivalent of
     sequentially processing a single database file of 10,000 records.
     Therefore, use this command carefully.

 Examples

     .  This example joins Customer.dbf to Invoices.dbf to produce
        Purchases.dbf:

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

 Files   Library is CLIPPER.LIB.


See Also: SET RELATION
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson