Menguasai Alias dalam Pertanyaan SQL Kompleks
Mempermudahkan pertanyaan SQL yang kompleks selalunya melibatkan penggunaan alias untuk kebolehbacaan yang lebih baik dan nama lajur yang lebih pendek. Walau bagaimanapun, merujuk secara langsung alias dalam pengiraan seterusnya dalam penyata SELECT
yang sama boleh membawa kepada ralat.
Pertimbangkan pertanyaan bermasalah ini:
<code class="language-sql">SELECT 10 AS my_num, my_num * 5 AS another_number FROM table;</code>
Pertanyaan ini cuba menggunakan alias my_num
dalam pengiraan, mengakibatkan ralat "lajur tidak diketahui". Ini kerana alias tidak boleh diakses secara langsung dalam penyataan SELECT
yang sama di mana ia ditakrifkan.
Penyelesaian terletak pada penggunaan subkueri:
<code class="language-sql">SELECT my_num, my_num * 5 AS another_number FROM (SELECT 10 AS my_num FROM table) AS subquery;</code>
Begini cara pertanyaan yang diperbetulkan ini berfungsi:
Dalam SELECT
Pernyataan: (SELECT 10 AS my_num FROM table)
Subkueri ini memberikan nilai 10 kepada alias my_num
. Klausa FROM table
disertakan untuk memenuhi keperluan sintaks subkueri dalam banyak sistem pangkalan data, walaupun jadual khusus tidak digunakan dalam kes ini.
Outer SELECT
Pernyataan: SELECT my_num, my_num * 5 AS another_number FROM ( ... ) AS subquery;
Pertanyaan luar kemudian memilih my_num
dan melakukan pengiraan my_num * 5
, merujuk alias yang ditakrifkan dalam subquery dengan betul. Subkueri dialiaskan sebagai subquery
untuk kejelasan dan untuk memenuhi keperluan sintaks.
Pendekatan ini, menggunakan penyataan SELECT
bersarang, membolehkan penggunaan semula alias merentas berbilang pengiraan, meningkatkan dengan ketara organisasi dan kebolehselenggaraan pertanyaan SQL yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Alias dalam Pengiraan SQL Seterusnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!