Multiple Join

If the join is a multiple join, the following is displayed:

A multiple join consists of a series of simple joins, which can be traversed in sequence to create a join between Table 1 and Table 2.

When a new multiple join is created, and no simple joins have been added to the list thereof, RPI automatically identifies a series of traversable simple joins between Tables1 and 2 (if such exists), and adds them to the Simple Joins list.

Simple joins can also be added using the Simple Joins list’s Choose button (see below), or the Add this Join… button displayed in the Joins List (documented separately).

The following properties are shown for multiple joins:

      Selected Join Details: as for a simple join.  Note that Cardinality is disabled for multiple joins.

      Simple Joins toolbar: exposes the following:

Choose: allows you to choose simple joins to associate with the multiple join.  Invocation displays the Choose Joins for [Table 1] to [Table 2] dialog.

The dialog displays a grid listing all simple joins.  You can click on a column header to order the grid's contents by the column in question.  The following columns are shown:

§ Include: a checkbox, the checked state of which reflects the simple join's presence in the multiple join’s Simple Joins list.  Checking a simple join adds it to the list on invocation of Accept Changes.

§ Table 1: the first of the simple join’s tables.  When one or more auxiliary databases have been configured at the current RPI client, table names are qualified with the database to which they belong.

§ Table 2: the second of the simple join’s tables.  When one or more auxiliary databases have been configured at the current RPI client, table names are qualified with the database to which they belong.

§ Accept Changes: invocation of this option reflects the simple join selection in the dialog in the multiple join’s Simple Joins list.  The dialog is removed from display and newly-added simple joins are appended to the end of the list.

§ Cancel: invocation of this option removes the dialog from display without changing the multiple join’s Simple Joins list.

Move Up: only available if a simple join other than the first in the list is selected.  Invocation moves the join up one position in the list.

Move Down: only available if a simple join other than the last in the list is selected.  Invocation moves the join down one position in the list.

Remove: removes the join from the list.  Not protected by an ‘Are You Sure?’ dialog.

      Simple Joins list: lists simple joins that collectively make up the multiple join.  You can add a simple join to the list by clicking the button in the first column in the main Joins grid.  Doing so updates the state of the multiple join to Edited.  It is not possible to add the same simple join to the list more than once.  You can remove one or more joins from the list.  Note that at least one simple join must be selected.  Finally, it must be possible to navigate from Table 1 to Table 2 using the specified simple joins list.

The following rules must be observed before a multiple join can be saved:

      Table 1 must be contained in the multiple join's first simple join

      Table 2 must be contained in the multiple join's last simple join

      It must be possible to navigate the multiple join’s simple joins.  Navigation is effected from top to bottom.  One table within a following simple join must be present within its preceding simple join.

Cross-database multiple joins are supported.  A validation error is raised at saved in the event of a multiple join’s configuration containing a schema mismatch.