ตอบคุณ Multithreading น่ะครับ
ผมว่า view ไม่ได้เก็บข้อมูลนะครับ มันเป็นเหมือนกับ Adaptor ที่ Join Table หลายๆ Table ไว้ ให้เราไป Select จากมัน อีกครั้ง โดยมองมันเหมือนอีก Table
แต่ Temp Table มันจะเหมือนกับเป็นตัวแปร ที่เก็บข้อมูล ไม่ได้เป็น adpaptor สำหรับผ่านข้อมูลเหมือนview ฃ
และ Temp Table ไม่จำเป็นที่จะต้องส่ร้างมาก่อน สำหรับ Select into ได้เลย
concept การใช้งาน มันก็ไม่เหมือนกัน นะครับ
view Create ครั้งเดียว และจะอยู่ใน Database เลย ถ้าจะเปลี่ยน Structure ก็ต้องไป เปลี่ยนที่ตัว view
แต่ถ้าเป็น Temp Table เราสามารถ Select ข้อมูลไว้ใน Temp Table ต้องการแค่พักข้อมุลไว้ชั่วคราว ไม่จำเป็น ต้องสร้างมาก่อน ปิดหน้า Query ตัว Temp มันก็หายไปครับ
มันเหมือนกับ comment ของคุณ udomchok อ่ะครับ
เพียงแต่ต้องการเปลี่ยน จาก nested query เป็น Temp Table แทน
ถ้าสำมุตว่า เปลี่ยนไปเป็นใช้ View เราก็ต้องไป Create มันอีก
ต้องเสียเวลากับ Define Fields ให้เหมือนกับที่เรา จะ Select มาครับ
และถ้าสมมุติ ว่า Nested query ที่ผมจะใช้ ประมาณสัก 10 Table
ก็ต้อง Create view 10 views และต้องคอยลบออก อีก เำพราะไม่ได้ใช้อีก ถ้าเป็น Temp Table ก็ใช้ได้เลยครับ
เพียงแต่ ไม่รุ้่ว่า มันทำงัย
พอดี ก่อนหน้านี้ เคยใช้ SQL Server มาครับ แล้วติดกับการใช้ Temp Table มันสะดวกสะบาย และทำให้ไม่งง โค้ดตัวเองครับ
ส่วนเรื่องผิดหลักการ นั้นผมว่า มันก็ไม่น่าจะผิด นะครับ เพราะ Temp Table มันคือ Table เหมือนกัน Table จริงๆ ใน Database ครับ สามารถ เอา Fk มา Join กันได้ ตามปกติ เหมือนกับ Table จริงๆ ทุกประการ ครับ
ปล. ถ้าความเข้าใจของผมผิด งัยรบกวนแนะนำ ด้วยนะครับ