รายละเอียดของการตอบ ::
ใช่แล้วครับ ช่วยทำให้เร็วขึ้นตอน Select แต่ตอน Insert/Update มันก็จะสวนทางกันมันช้าลงนิดหน่อย
Code (SQL)
SELECT * FROM `table1`
INNER JOIN `table2` ON `table1`.id != `table2`.id_table2
LEFT JOIN `table3` ON `table1`.id != `table3`.id_table3
WHERE ?
Group by id DESC
เห็น คิวรีแบบนี้แล้วถ้ามันเร็วมากฯ มันก็ผิดปกติแล้วครับ มันต้องมี WHERE ด้วย
Where ระดับที่ 1 ของ Table1
Where ระดับที่ 2 ของ Table2 (Select TOP(1) FROM Table2) /*เอาแค่ระเบียนเดียวพอ */
Where ระดับที่ 3 ของ Table3 (Select TOP(1) FROM Table3) /*เอาแค่ระเบียนเดียวพอ */
เขียนให้ดูใหม่
Code (SQL)
SELECT * FROM `table1`
CROSS APPLY (SELECT TOP(1) FROM `table2` WHERE `table1`.id != `table2`.id_table2)
OUTER APPLY (SELECT TOP(1) FROM `table3` WHERE `table1`.id != `table3`.id_table3)
ถ้าคิดมันยังช้า ให้ย้ายคำสั่ง
Group by id DESC ไปทำงานใน Temp Table ดังนี้
Select * INTO #Temp
Select * FROM #Temp Group by id DESC