Gabungan Luar

ODBC mendukung sintaks gabungan kiri, kanan, dan luar SQL-92. Urutan escape untuk gabungan luar adalah

{ojgabungan luar}

di mana gabungan luar berada

referensi tabel {LEFT | KANAN | FULL} OUTER JOIN {table-reference | outer-join} ONsearch-condition

referensi tabel menentukan nama tabel, dan kondisi pencarian menentukan kondisi gabungan antara referensi tabel.

Permintaan gabungan luar harus muncul setelah kata kunci FROM dan sebelum klausa WHERE (jika ada). Untuk informasi sintaks lengkap, lihat Urutan Escape Gabungan Luar dalam Lampiran C: Tata Bahasa SQL.

Misalnya, pernyataan SQL berikut membuat tataan hasil yang sama yang mencantumkan semua pelanggan dan menunjukkan yang memiliki pesanan terbuka. Pernyataan pertama menggunakan sintaks escape-sequence. Pernyataan kedua menggunakan sintaksis asli untuk Oracle dan tidak dapat dioperasikan.

SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status  
   FROM {oj Customers LEFT OUTER JOIN Orders ON Customers.CustID=Orders.CustID}  
   WHERE Orders.Status='OPEN'  
  
SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status  
   FROM Customers, Orders  
   WHERE (Orders.Status='OPEN') AND (Customers.CustID= Orders.CustID(+))  

Untuk menentukan jenis gabungan luar yang didukung sumber data dan driver, aplikasi memanggil SQLGetInfo dengan bendera SQL_OJ_CAPABILITIES. Jenis gabungan luar yang mungkin didukung adalah gabungan luar kiri, kanan, penuh, atau berlapis; gabungan luar di mana nama kolom dalam klausul ON tidak memiliki urutan yang sama dengan nama tabel masing-masing dalam klausul OUTER JOIN ; gabungan dalam bersama dengan gabungan luar; dan gabungan luar menggunakan operator perbandingan ODBC apa pun. Jika jenis informasi SQL_OJ_CAPABILITIES mengembalikan 0, tidak ada klausa gabungan luar yang didukung.