Mengisih Keputusan daripada Gabungan SELECT dan Pertanyaan UNION
Menggabungkan berbilang pertanyaan SELECT
menggunakan UNION
memberikan cabaran yang sama: cara mengisih set data yang terhasil. Mari kita terokai isu ini dan penyelesaiannya.
Cabarannya
Apabila mendapatkan semula data daripada pelbagai jadual atau menggunakan berbilang SELECT
penyata yang digabungkan dengan UNION
, mencapai susunan isihan lajur tertentu boleh menjadi rumit.
Penjelasan Terperinci
Pertimbangkan senario ini:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20;</code>
Pertanyaan ini memilih data daripada dua kumpulan berbeza dalam jadual Student
. Walau bagaimanapun, klausa ORDER BY name
mudah yang diletakkan dalam salah satu pernyataan SELECT
tidak akan mengisih hasil gabungan dengan betul.
Penyelesaian
Pendekatan yang betul ialah menggunakan klausa ORDER BY
selepas pernyataan UNION
. Pertanyaan berikut menunjukkan kaedah yang betul:
<code class="language-sql">SELECT id, name, age FROM Student WHERE age < 20 UNION SELECT id, name, age FROM Student WHERE age >= 20 ORDER BY name;</code>
Ini memastikan klausa ORDER BY
beroperasi pada set data lengkap yang dihasilkan oleh operasi UNION
, menjamin output diisih yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Memesan Keputusan daripada Berbilang Pertanyaan SELECT Digabungkan dengan UNION?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!