Outer Joins
DB2 supports ANSI SQL 92 syntax, so outer joins for DB2 should be written in the FROM clause. See the examples on constructing outer joins in the section “Outer Join Constructs In the FROM Clause (ANSI-Compliant),” in the DB Interface Module User’s Guide.
The next example shows how you would write an outer join program for DB2. You can assume that myDbase is a valid RWDBDatabase instance.
An Outer Join for DB2 in ANSI-Compliant Syntax
 
RWDBTable employee = myDbase.table("emp");
RWDBTable depart = myDbase.table("dept");
RWDBTable locate = myDbase.table("loc");
 
RWDBSelector selector = myDbase.selector();
selector << employee["empnum"] << employee["ename"]
<< employee["deptno"]<< depart["deptno"] << depart["dname"]
<< depart["locno"] << locate["locno"] << locate["lname"];
 
// Define and declare join1 as a right outer join
// between the tables emp and dept.
RWDBJoinExpr join1 = rwdbRightOuter(employee, depart);
 
// Attach the join criterion to join1 using the on() method.
// This criterion joins the two tables emp and dept
// by their deptno columns.
join1.on(employee["deptno"] == depart["deptno"]);
// Define and declare join2 as a left outer join
// between join1 and the table loc, forming a nested join.
RWDBJoinExpr join2 = rwdbLeftOuter(join1, locate);
 
// Attach the join criterion to join2 using the on() method.
// This criterion joins the two tables dept and loc
// by their locno columns.
join2.on(depart["locno"] == locate["locno"]);
 
// Attach join2 explicitly to the selector FROM clause
// using the from() method.
selector.from(join2);