2
ทำไม MySQL อนุญาตให้มีการใช้นามแฝง SELECT?
ใน SQL เท่าที่ฉันรู้ลำดับการประมวลผลแบบสอบถามตรรกะซึ่งเป็นลำดับการตีความแนวคิดเริ่มต้นด้วย FROM ด้วยวิธีดังต่อไปนี้: จาก WHERE จัดกลุ่มตาม การมี เลือก สั่งโดย การติดตามรายการนี้เป็นเรื่องง่ายที่จะดูว่าทำไมคุณไม่สามารถเลือกชื่อแทนในส่วนคำสั่ง WHERE เนื่องจากยังไม่ได้สร้างชื่อแทน T-SQL (SQL Server) ทำตามสิ่งนี้อย่างเคร่งครัดและคุณไม่สามารถใช้นามแฝง SELECT ได้จนกว่าคุณจะผ่าน SELECT แต่ใน MySQL มันเป็นไปได้ที่จะใช้นามแฝง SELECT ในส่วนคำสั่ง HAVING แม้ว่ามันควรจะดำเนินการก่อน สิ่งนี้จะเป็นไปได้อย่างไร เพื่อให้ตัวอย่าง: SELECT YEAR(orderdate), COUNT(*) as Amount FROM Sales.Orders GROUP BY YEAR(orderdate) HAVING Amount>1; คำสั่งไม่ถูกต้องใน T-SQL (เนื่องจาก HAVING อ้างถึงนามแฝง SELECT Amount) ... …