Use the Outer-join Mode (-ojmode) parameter to specify the mode in which mixed inner and left outer joins, in queries of three or more joined tables, are processed.
Operating system and syntax
UNIX / Windows
-ojmoden
Use with
Maximum value
Minimum value
Single-user default
Multi-user default
Client Session
2
1
1
1
n
An INTEGER specifying the join mode.
Mixing inner and left outer joins lets you filter and reduce the amount of data you see on the left side of your left outer joins. When mixing these two types of join, inner joins take precedence over left outer joins. That is, the last inner join in a query causes the results of a prior outer join in the query to be like an inner join. This is because any rows that contain missing data from a prior left outer join are eliminated by the following inner join, if the data from that inner join is also missing. If the subsequent inner join has data, rows containing missing data from the prior left outer join are not eliminated.
If you set the value of -ojmode to 1, mixed inner and left outer joins in queries of three or more joined tables are processed as described above. Use this join mode when you want to see rows that contain missing data from a prior left outer join and existent data from a subsequent inner join. This is the default join mode.
If you set the value of -ojmode to 2, left outer joins take precedence over inner joins. That is, any rows that contain missing data from a prior left outer join are not eliminated by a subsequent inner join, whether the data from that inner join is missing or not. Use this join mode when you want to see rows that contain missing data from both a prior left outer join and a subsequent inner join.
Note: In any query, keeping your inner joins contiguous on the left with any left outer joins contiguous on the right will produce the same result in either join mode.