Operator Oracle ( ): Pendekatan Legasi untuk Gabungan Luar
Pertimbangkan pernyataan SQL ini:
<code class="language-sql">select ... from a, b where a.id = b.id(+)</code>
Pengendali ( )
dalam Oracle SQL ialah cara yang lebih lama dan tidak standard untuk melakukan gabungan luar. Ia adalah penahanan daripada SQL pra-ANSI-92 dan secara amnya dianggap kurang boleh dibaca dan berkemungkinan kurang cekap daripada sintaks OUTER JOIN
moden.
Memodenkan dengan Sambungan Luar Standard ANSI-92
Pertanyaan di atas boleh ditulis semula menggunakan sintaks ANSI-92 LEFT JOIN
standard dan pilihan:
<code class="language-sql">SELECT ... FROM a LEFT JOIN b ON b.id = a.id</code>
Versi ini lebih jelas, lebih mudah difahami dan lebih mudah alih merentas sistem pangkalan data yang berbeza.
Perbezaan dan Pertimbangan Utama
Pengendali ( )
berbeza dengan ketara daripada pendekatan OUTER JOIN
:
( )
bukan sebahagian daripada standard ANSI SQL. Menggunakan sintaks standard meningkatkan kebolehbacaan dan kebolehselenggaraan kod.( )
mungkin memerlukan strategi pengindeksan khusus untuk prestasi optimum. OUTER JOIN
sintaks, terutamanya apabila digunakan dengan pengoptimum pertanyaan moden, selalunya membawa kepada rancangan pelaksanaan yang lebih cekap.Syor Kuat Oracle: Terimalah OUTER JOIN Standard
Oracle secara eksplisit mengesyorkan menggunakan sintaks OUTER JOIN
standard (LEFT JOIN
, RIGHT JOIN
, FULL OUTER JOIN
) dan bukannya pengendali ( )
. Ini kerana:
OUTER JOIN
standard, yang membawa kepada prestasi pertanyaan yang lebih baik.Atas ialah kandungan terperinci Apakah Operator Oracle ( ) dan Mengapa Saya Perlu Menggunakan OUTER JOIN Sebaliknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!