Gabungan Luar

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

{ojouter-join}

di mana gabungan luar berada

referensi tabel {LEFT | | KANAN FULL} OUTER JOIN {table-referenceouter-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 di Lampiran C: SQL Tata Bahasa.

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 sintaks 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.