หลังจากผู้ใช้เข้าสู่ระบบจะมีลิงก์อีกสองลิงก์ภายใต้เมนูฟอรัมคือ: ธีมที่ฉันเผยแพร่และธีมที่ฉันเข้าร่วม แบบสอบถามของอดีตนั้นง่ายขึ้น หากการโพสต์ธีมและการตอบกลับที่นี่อยู่ในตารางข้อมูล โดยทั่วไปแล้วเรารู้ว่าเมื่อมีการตอบกลับชื่อเรื่องสามารถละเว้นได้ แบบสอบถามนี้ทำได้อย่างไร?
มาดูรหัสของเครือข่ายที่กำลังเคลื่อนที่ก่อน:
ต่อไปนี้เป็นส่วนของรหัส:
เลือก TOP 200 * จากหัวข้อที่หัวข้อใน (เลือก TOP 200 ROOTID จาก & NOWUSEBBS & WHERE POSTUSERID = & USERID & ORDER โดย AnnounderId DESC SC
เหตุใดจึงมีวงเล็บเล็ก ๆ ในแบบสอบถามนี้? หมายความว่าอย่างไร? และฟังการสลายตัว
แบบสอบถามที่เราใช้โดยทั่วไปคือแบบสอบถามแบบเลเยอร์เดียว แต่แบบสอบถามข้างต้นคือสองเลเยอร์ . ในคำอื่น ๆ ก่อนที่จะดำเนินการค้นหาในวงเล็บขนาดเล็ก (เราเรียกมันว่าแบบสอบถามเด็ก) จากนั้นเซิร์ฟเวอร์เริ่มทำการสืบค้นภายนอกและส่งคืนผลลัพธ์ที่ถูกต้อง แบบสอบถามข้างต้นชั้นแรกของการสืบค้นคือการตรวจสอบโพสต์ทั้งหมด (รวมถึงการตอบกลับ) ที่เผยแพร่โดยผู้ใช้ในเวอร์ชันนี้จากนั้นตรวจสอบธีมของสติกเกอร์เหล่านี้
นอกเหนือจากฟังก์ชั่นข้างต้นแล้วอะไรคือประโยชน์ของการสืบค้นซ้อนกัน? หากฟังก์ชั่นทางสถิติจำเป็นต้องใช้ฟังก์ชั่นทางสถิติในสภาพการค้นหา (ซึ่งมักใช้ในสถิติการวิเคราะห์) คุณสามารถใช้แบบสอบถามซ้อนกันได้ ตัวอย่างเช่นรหัสของหนังสือที่มีหนังสือที่มียอดขายเฉลี่ยของการขายทั้งหมดเป็นสิ่งจำเป็น
เลือก title_id, จำนวน // title_id เป็นหมายเลขหนังสือจำนวนมากคือยอดขาย
จากการขาย
โดยที่จำนวน> avg (จำนวน) // avg เป็นฟังก์ชันเฉลี่ย AVG (จำนวน) คือปริมาณการขายเฉลี่ย
เซิร์ฟเวอร์จะแจ้งข้อผิดพลาดเนื่องจากฟังก์ชั่นทางสถิติของข้อมูลของรายการที่เลือกไม่ได้รับอนุญาตในประโยคที่ โดยใช้การสืบค้นที่ซ้อนกันในประโยคที่ปัญหานี้สามารถแก้ไขได้
ต่อไปนี้เป็นส่วนของรหัส:
เลือก title_id จำนวน
จากการขาย
ที่จำนวน>
(เลือก AVG (จำนวน) จากการขาย)