Dalam mysql, "dengan sebagai" juga dipanggil subquery, yang digunakan untuk mentakrifkan serpihan sql, dan serpihan itu akan digunakan berulang kali oleh keseluruhan pernyataan sql ini berkali-kali bersamaan dengan a jadual sementara awam. Sintaks ialah "dengan tmp sebagai (pernyataan pertanyaan)".
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Apakah penggunaan dengan seperti dalam mysql
WITH AS phrase, juga dipanggil subquery factoring, boleh mentakrifkan Fragmen SQL, ini Serpihan SQL akan digunakan oleh keseluruhan pernyataan SQL. Ia boleh menjadikan pernyataan SQL lebih mudah dibaca, atau ia boleh digunakan sebagai bahagian yang menyediakan data di bahagian berlainan UNION ALL.
Untuk UNION ALL, gunakan WITH AS untuk mentakrifkan pernyataan UNION ALL Apabila serpihan dipanggil lebih daripada 2 kali, pengoptimum akan secara automatik meletakkan data yang diperolehi oleh frasa WITH AS ke dalam jadual Temp. Gesaan "meterize" memaksa data frasa WITH AS untuk dimasukkan ke dalam jadual sementara global. Banyak pertanyaan boleh dipercepatkan dengan cara ini.
Oleh kerana subkueri dengan sebagai hanya dilaksanakan sekali, hasilnya disimpan dalam jadual sementara pengguna untuk meningkatkan prestasi pertanyaan, jadi ia sesuai untuk berbilang senario rujukan, seperti: statistik laporan kompleks, pertanyaan halaman dan perlu mendapatkan Keputusan seperti jumlah, kiraan dan purata digunakan sebagai syarat penapisan untuk melaksanakan pemprosesan sekunder pada hasil pertanyaan!
Terutama berguna untuk kesatuan semua. Kerana setiap bahagian kesatuan mungkin sama, tetapi jika setiap bahagian dilaksanakan semula, kosnya terlalu tinggi
Sintaksi biasa
–untuk alias
with tmp as (select * from tb_name)
– Untuk berbilang alias
with tmp as (select * from tb_name), tmp2 as (select * from tb_name2), tmp3 as (select * from tb_name3), …
– ia bersamaan dengan membina jadual e sementara
with e as (select * from scott.emp e where e.empno=7499) select * from e;
– ia bersamaan dengan membina jadual e dan d sementara
with e as (select * from scott.emp), d as (select * from scott.dept) select * from e, d where e.deptno = d.deptno;
Malah, ia adalah untuk memasukkan banyak pernyataan SQL yang digunakan berulang kali dengan sebagai, mengambil alias dan menggunakannya dalam pertanyaan seterusnya Ini memainkan peranan pengoptimuman dalam kumpulan besar pernyataan SQL, dan jelas dan jelas. .
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Apakah kegunaan dengan seperti dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!