Outer Joins dalam Oracle WHERE Klausa: Operator " "
Dalam pangkalan data Oracle, operator " " boleh digunakan dalam klausa WHERE untuk menentukan cantuman luar antara dua jadual. Cantuman luar membenarkan pengambilan semula rekod yang sepadan dalam kedua-dua jadual, serta rekod yang wujud dalam satu jadual sahaja.
Sintaks
Sintaks untuk menggunakan " " operator dalam klausa WHERE adalah sebagai berikut:
WHERE Table1.Column = Table2.Column(+)
Fungsi
Apabila pengendali " " muncul di sebelah kiri tanda "=", ia menunjukkan LEFT OUTER JOIN. Ini bermakna semua rekod daripada Jadual1 akan dikembalikan, tidak kira sama ada rekod tersebut mempunyai rekod yang sepadan dalam Jadual2 atau tidak. Mana-mana rekod yang tidak sepadan dalam Jadual2 akan dikembalikan dengan nilai nol untuk lajur yang dicantumkan.
Sebaliknya, apabila pengendali " " muncul di sebelah kanan tanda "=", ia menunjukkan JOIN LUAR KANAN. Dalam kes ini, semua rekod daripada Jadual2 akan dikembalikan, walaupun mereka tidak mempunyai rekod yang sepadan dalam Jadual1. Rekod yang dipadankan daripada Jadual1 akan disertakan dalam keputusan, manakala rekod yang tidak sepadan akan mempunyai nilai nol.
Contoh
Pertimbangkan pertanyaan berikut:
SELECT Table1.Category1, Table1.Category2, count(*) as Total, count(Tab2.Stat) AS Stat FROM Table1, Table2 WHERE (Table1.PrimaryKey = Table2.ForeignKey(+)) GROUP BY Table1.Category1, Table1.Category2
Pertanyaan ini melakukan LEFT OUTER JOIN antara Jadual1 dan Jadual2 berdasarkan PrimaryKey dan Lajur ForeignKey. Semua rekod daripada Jadual1 akan dimasukkan ke dalam keputusan, walaupun mereka tidak mempunyai rekod yang sepadan dalam Jadual2. Untuk rekod yang tidak sepadan dalam Jadual2, lajur Stat akan menjadi batal.
Pengesyoran
Walaupun pengendali " " boleh digunakan untuk mencipta cantuman luar dalam Oracle, ia biasanya dianggap ketinggalan zaman dan tidak boleh dibaca seperti sintaks gabungan moden. Adalah disyorkan untuk menggunakan LEFT JOIN atau RIGHT JOIN sebaliknya, kerana ia memberikan semantik gabungan yang lebih eksplisit dan intuitif.
Atas ialah kandungan terperinci Bagaimana Pengendali ' ' Oracle dan Klausa WHERE Mencipta Gabungan Luar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!