Cara alternatif menulis UNION dalam Oracle termasuk: penambahan langsung (+): sertai hasil pertanyaan, mengekalkan baris pendua. UNION ALL: Sertai hasil pertanyaan, mengekalkan semua baris. DENGAN subquery: Cipta jadual sementara, mengandungi hasil pertanyaan, dan kemudian tanya jadual sementara. CTE: Tentukan jadual atau paparan sementara untuk pertanyaan seterusnya. SQL JOIN: Sertai baris yang berkaitan dalam berbilang jadual.
Cara penulisan alternatif UNION dalam Oracle
Tambahan terus (+)
Alternatif paling mudah untuk UNION ialah menggunakan operator tambah (+). Ia menyertai hasil dua pertanyaan tetapi tidak mengalih keluar baris pendua.
<code>SELECT * FROM table1 + SELECT * FROM table2;</code>
UNION ALL
UNION ALL serupa dengan UNION tetapi ia tidak memadamkan baris pendua. Ia menyertai hasil dua pertanyaan dan termasuk semua baris dalam hasil akhir.
<code>SELECT * FROM table1 UNION ALL SELECT * FROM table2;</code>
WITH subquery
WITH subquery membolehkan anda mencipta jadual sementara yang mengandungi hasil dua pertanyaan. Anda kemudian boleh memilih daripada jadual sementara.
<code>WITH tmp_table AS ( SELECT * FROM table1 UNION SELECT * FROM table2 ) SELECT * FROM tmp_table;</code>
Ungkapan Jadual Biasa (CTE)
CTE membolehkan anda menentukan jadual atau pandangan sementara yang boleh digunakan dalam pertanyaan seterusnya. Contoh berikut menggunakan CTE dan bukannya UNION:
<code>WITH tmp_table AS ( SELECT * FROM table1 ) SELECT * FROM tmp_table UNION SELECT * FROM table2;</code>
SQL JOIN
Untuk UNION yang melibatkan berbilang jadual, anda boleh menggunakan SQL JOIN. Dengan menggunakan syarat sertai, anda boleh menyertai baris berkaitan dalam jadual yang berbeza.
<code>SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;</code>
Pilih kaedah yang paling sesuai
Memilih alternatif kepada UNION bergantung pada keperluan khusus pertanyaan. Berikut ialah beberapa garis panduan am:
Atas ialah kandungan terperinci Cara alternatif untuk menulis kesatuan dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!