Setelah pengguna masuk, akan ada dua tautan lagi di bawah menu Forum, yaitu: tema yang saya terbitkan dan tema yang saya ikuti. Kueri mantan lebih sederhana. Jika tema dan stiker balasan di sini ada di tabel data. Kami tahu, secara umum, ketika balasan dirilis, judulnya dapat dihilangkan. Bagaimana kueri ini melakukannya?
Mari kita lihat kode jaringan yang bergerak terlebih dahulu:
Berikut ini adalah fragmen kode:
Pilih Top 200 * Dari Topik Where TopicId In (Pilih 200 RootID Top dari & NowUsEseBBS & WHERE POSTUSERID = & UserID & Order by Announderid Desc SC
Mengapa ada tanda kurung kecil dalam kueri ini? Apa artinya? Dan dengarkan dekomposisi.
Kueri yang biasanya kami gunakan adalah kueri -layer tunggal, tetapi kueri di atas adalah dua lapisan. Dengan kata lain, pertama -tama jalankan kueri di braket kecil (kami menyebutnya permintaan anak), dan kemudian server mulai melakukan kueri eksternal dan mengembalikan hasil yang benar. Kueri di atas, lapisan kueri pertama adalah untuk memeriksa semua posting (termasuk balasan) yang diterbitkan oleh pengguna dalam versi ini, dan kemudian periksa tema stiker ini.
Selain fungsi di atas, apa manfaat permintaan bersarang? Jika fungsi statistik diperlukan untuk menggunakan fungsi statistik dalam kondisi pencarian (yang sering digunakan dalam statistik analisis), Anda dapat menggunakan kueri bersarang. Misalnya, kode buku dengan buku dengan penjualan rata -rata semua penjualan sekarang diperlukan.
Pilih title_id, qty // title_id adalah nomor buku, qty adalah penjualan
Dari penjualan
Di mana qty> rata -rata (qty) // rata -rata adalah fungsi rata -rata, rata -rata (qty) adalah volume penjualan rata -rata
Server akan meminta kesalahan karena fungsi statistik dari data daftar pilih tidak diizinkan di klausa WHERE. Dengan menggunakan kueri bersarang di klausa di mana, masalah ini dapat diselesaikan.
Berikut ini adalah fragmen kode:
Pilih title_id, qty
Dari penjualan
Dimana qty>
(Pilih AVG (QTY) dari penjualan)