В нижеследующем запросе запрашивается идентификатор wageTypeID на основе текущей активной записи и записи о зарплате.Simple INNER JOIN Query Returns No Value - Где я ошибаюсь?
SELECT wt.wageTypeID
FROM TimeSheet t
INNER JOIN Employee e ON e.employeeID = t.employeeID
INNER JOIN Salary s ON s.salaryID = t.salaryID
INNER JOIN Wage w ON w.wageID = s.wageID
INNER JOIN EmpHiringInfo ehf ON ehf.EmpHiringInfoID = s.EmpHiringInfoID
INNER JOIN WageType wt ON wt.wageTypeID = w.wageTypeID
WHERE ehf.employeeID = 300
AND ehf.isActive = 1
AND s.isActive = 1
Вышеупомянутый запрос должен вернуть значение 15! Интересно, где я ошибся?
Вот схема соединяемых таблиц:
TimeSheet:
timeSheetID
employeeID - 300
salaryID
.
.
Salary:
salaryID
EmpHiringInfoID
wageID
isActive - true
.
.
WageType:
wageTypeID - 15
wageTypeTitle - Hourly
Wage:
wageID
wageTypeID - 15
wageAmount - $11
EmpHiringInfo:
EmpHiringInfoID
employeeID
isActive - true
.
.
IsActive в заработной плате только и правда только для одной записи. То же самое относится к EmpHiringInfo.
Разбивайте свой запрос и выполняйте его шаг за шагом. Ваш запрос не выглядит плохим, у вас, скорее всего, нет данных, которые, как вы думаете, вы делаете. –