3
การมี 'OR' ในเงื่อนไข INNER JOIN เป็นความคิดที่ไม่ดีหรือไม่?
ในการพยายามปรับปรุงความเร็วของแบบสอบถามที่ช้ามาก (หลายนาทีในสองตารางโดยมีแถวละประมาณ 50,000 แถวเท่านั้นบน SQL Server 2008 ถ้าเป็นเรื่องสำคัญ) ฉันได้ จำกัด ปัญหาให้แคบลงเป็นการรวมORภายในของฉันเช่นใน: SELECT mt.ID, mt.ParentID, ot.MasterID FROM dbo.MainTable AS mt INNER JOIN dbo.OtherTable AS ot ON ot.ParentID = mt.ID OR ot.ID = mt.ParentID ฉันเปลี่ยนสิ่งนี้เป็น (สิ่งที่ฉันหวังคือ) การรวมด้านซ้ายคู่ที่เทียบเท่าแสดงที่นี่: SELECT mt.ID, mt.ParentID, CASE WHEN ot1.MasterID IS NOT NULL THEN ot1.MasterID ELSE ot2.MasterID END AS …