TheWebDataGuy
MIS
Here is a search query I would like to optimize. The database is de-normalized to store 6 StaffIDs in the Applications table. We need to lookup applicaitons by employee names. Currently it takes a loooong time.
SELECT *
FROM Applications a
LEFT OUTER JOIN Employee e ON m.StaffID = e.StaffID
LEFT OUTER JOIN Employee e1 ON m.StaffID1 = e1.StaffID
LEFT OUTER JOIN Employeee e2 ON m.StaffID2 = e2.StaffID
LEFT OUTER JOIN Employeee e3 ON m.StaffID3 = e3.StaffID
LEFT OUTER JOIN Employeee e4 ON m.StaffID4 = e4.StaffID
LEFT OUTER JOIN Employeee e5 ON m.StaffID5 = e5.StaffID
WHERE (e.LastName = 'LastName')
OR (e1.LastName = 'LastName') OR (e2.LastName = 'LastName') OR (e3.LastName = 'LastName') OR (e4.LastName = 'LastName') OR (e5.LastName = 'LastName')
ORDER BY m.AppID DESC
Thanks in advance.
SELECT *
FROM Applications a
LEFT OUTER JOIN Employee e ON m.StaffID = e.StaffID
LEFT OUTER JOIN Employee e1 ON m.StaffID1 = e1.StaffID
LEFT OUTER JOIN Employeee e2 ON m.StaffID2 = e2.StaffID
LEFT OUTER JOIN Employeee e3 ON m.StaffID3 = e3.StaffID
LEFT OUTER JOIN Employeee e4 ON m.StaffID4 = e4.StaffID
LEFT OUTER JOIN Employeee e5 ON m.StaffID5 = e5.StaffID
WHERE (e.LastName = 'LastName')
OR (e1.LastName = 'LastName') OR (e2.LastName = 'LastName') OR (e3.LastName = 'LastName') OR (e4.LastName = 'LastName') OR (e5.LastName = 'LastName')
ORDER BY m.AppID DESC
Thanks in advance.