รายละเอียดของการตอบ ::
ถ้า column ที่ WHERE ทุกตัวมี index จะเร็วที่สุดครับ ยิ่งกรองข้อมูลให้เหลือน้อยที่สุดก็ยิ่งดีครับ
สมมติคุณมี tb_doc_complete 1000000 แถว มันก็เอามาหมดครับ ถึงแม้จะ SELECT เฉพาะ doc_id ก็ตามที นั่นหมายถึงจะต้องใช้ cache สำหรับ doc_id 1000000 แถวนั้นเพื่อ NOT IN ใน query หลัก
ถ้าถามว่าอะไรเร็วกว่า อยู่ที่จำนวนแถวครับ
ถ้าจำนวนแถวในตารางหลักมีน้อย JOIN "อาจจะ" เร็วกว่า เพราะ JOIN จะดูจากจำนวนแถวในตารางหลัก
จำนวน operation ของ JOIN จะขึ้นอยู่กับจำนวนแถวในตารางหลัก ประกอบกับชนิดของเงื่อนไขในการ JOIN และ index
แต่ถ้าใช้ sub query แล้วตารางรองที่ SELECT มีจำนวนแถวน้อย sub query จะเร็วกว่าแน่นอนครับ
ทั้งนี้ขึ้นอยู่กับ index ด้วย