TheWebDataGuy
MIS
I am looking for some suggestions to optimize the query below. Currently it takes till eternity to display the output and the users won't like it.
The reason is quite obvious: I have used subqueries in loop.
There are three tables involved Max, Employee and Departments. Max table has fields EmployeeID1, EmployeeID2....EmployeeID5 and I need to retrieve the Employee Names & other information for all of them from Employee table. Some kind of a JOIN would be faster but I couldn't think of it.
SELECT [Max].[LogID], [Max].[DecisionDate], [Departments].[DepartmentName],(SELECT Employee.FirstName FROM Employee WHERE Max.EmployeeID1 = Employee.StaffID) AS FirstName1, (SELECT Employee.LastName FROM Employee WHERE Max.EmployeeID1 = Employee.StaffID) AS LastName1, (SELECT Employee.FirstName FROM Employee WHERE Max.EmployeeID2 = Employee.StaffID) AS FirstName2, (SELECT Employee.LastName FROM Employee WHERE Max.EmployeeID2 = Employee.StaffID) AS LastName2
FROM Max, Departments
WHERE [Max].[DeptCode]=[Departments].[DeptCode]
Thanks!
The reason is quite obvious: I have used subqueries in loop.
There are three tables involved Max, Employee and Departments. Max table has fields EmployeeID1, EmployeeID2....EmployeeID5 and I need to retrieve the Employee Names & other information for all of them from Employee table. Some kind of a JOIN would be faster but I couldn't think of it.
SELECT [Max].[LogID], [Max].[DecisionDate], [Departments].[DepartmentName],(SELECT Employee.FirstName FROM Employee WHERE Max.EmployeeID1 = Employee.StaffID) AS FirstName1, (SELECT Employee.LastName FROM Employee WHERE Max.EmployeeID1 = Employee.StaffID) AS LastName1, (SELECT Employee.FirstName FROM Employee WHERE Max.EmployeeID2 = Employee.StaffID) AS FirstName2, (SELECT Employee.LastName FROM Employee WHERE Max.EmployeeID2 = Employee.StaffID) AS LastName2
FROM Max, Departments
WHERE [Max].[DeptCode]=[Departments].[DeptCode]
Thanks!