TSO-ISPF JCL COBOL VSAM DB2 CICS Tools Articles Job Portal Forum Quiz Interview Q&A

DB2 - SQL FULL OUTER JOIN


The FULL OUTER JOIN keyword returns all records when there is a match in left (table1) or right (table2) table records. FULL OUTER JOIN and FULL JOIN are the same.

FULL OUTER JOIN can potentially return very large result-sets. Because, FULL OUTER JOIN returns all matching records from both tables whether the other table matches or not.

Syntax:

SELECT column_name(s)
  FROM table1
  FULL OUTER JOIN table2
  ON table1.column_name = table2.column_name
  WHERE condition;

DB2 Database:

Let's look at the "Orders" table data below:

OrderidCustomernumberOrderdate
1001102020-09-08
1002992020-09-01
1003172020-08-25
1004762020-09-19
1005442020-09-25


Let's look at the "Customers" table data below:

CustomernumberCustomernameCountry
76JackAmerica
17JancyGermany
20CarmenRussia
10RobertIndia
99BrianChina

Notice that the "Customernumber" column in the "Orders" table refers to the "Customernumber" in the "Customers" table. The relationship between the two tables above is the "Customernumber" column.

Let us see how to create SQL statement that will selects all customers, and all orders:

SELECT Customers.Customername, Orders.Orderid
  FROM Customers
  FULL OUTER JOIN Orders ON Customers.Customernumber = Orders.Customernumber
  ORDER BY Customers.Customername;

Result:
CustomernameOrderid
Brian1002
Carmennull
Jack1004
Jancy1003
Robert1001
null1005


If you have any doubts or queries related to this chapter, get them clarified from our Mainframe experts on ibmmainframer Community!

Are you looking for Job Change? Job Portal