วันพุธที่ 18 สิงหาคม พ.ศ. 2553

[SQL] EXISTS กับ IN ต่างกันอย่างไร

2 keyword นี้ เวลาเีขียน SQL มันก็หน้าตาคล้ายๆกันนี่นา (มี query นอก และมี sub query ใน)
ต่างกันยังไง?

EXISTS
ใช้เทียบว่า sub query นั้น มี record บ้างหรือไม่ (ไม่สนใจว่า value คืออะไร)
ถ้ามี เป็น TRUE

IN
ใช้เทียบว่าค่าที่ return จาก sub query นั้นเทียบกับ query นอก ตรงกันหรือไม่
ถ้าตรงกัน เป็น TRUE โดยเทียบทุก value

ความเห็น :
จริงๆแล้ว เป้าหมายของ 2 keyword นี้ต่างกัน แต่หากเราจะนำมาใช้เขียนเพื่อหาผลลัพท์เดียวกัน
มันก็ทำได้
แต่เท่าที่ศึกษามา ถ้าเป็นไปได้ ให้เลี่ยงการใช้ IN ซะ เพราะช้า ให้ใช้ EXISTS แทนครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น