我收到此错误呼叫,不是唯一的表别名,我无法找出问题。我有一个连接所有对象的公用日期表。还有连接两个表的教师表-休假和出勤。请帮助
SELECT
trns_teacherattendance.Attendance_Status,
trns_teacherattendance.Attendance_Month,
trns_teacherattendance.AcademicYear_Id,
trns_teacherattendance.School_Id,
trns_teacherattendance.Bio_Code,
trns_teacherattendance.IsActive,
mst_holiday_teacher.Holiday_Name,
dates.dates,
leave_new_view_teacher.Leave_Status,
mst_teacher.Teacher_Name,
leave_new_view_teacher.LeaveDate
FROM
trns_teacherattendancemapping
LEFT OUTER JOIN
trns_teacherattendance
ON
(
trns_teacherattendancemapping.Bio_Code =
trns_teacherattendance.Bio_Code)
RIGHT OUTER JOIN
dates
ON
(
trns_teacherattendance.Attendance_Date = dates.dates)
LEFT OUTER JOIN
mst_teacher
ON
(
trns_teacherattendancemapping.Teacher_Id =
mst_teacher.Teacher_Id)
RIGHT OUTER JOIN
leave_new_view_teacher
ON
(
mst_teacher.Teacher_Id = leave_new_view_teacher.TID)
LEFT OUTER JOIN
leave_new_view_teacher
ON
(
dates.dates = leave_new_view_teacher.LeaveDate)
LEFT OUTER JOIN
mst_holiday_teacher
ON
(
dates.dates = mst_holiday_teacher.Holiday_Date) ;
答案 0 :(得分:1)
您要两次连接到表leave_new_view_teacher
,但没有给它提供不同的别名。数据库无法知道您要从哪个查询/表中引用您的列。每个联接可以提取不同的数据/行。
将别名分配给这些表是本部分中的最低要求:
RIGHT OUTER JOIN
leave_new_view_teacher AS lnvt1 -- here
ON
mst_teacher.Teacher_Id = leave_new_view_teacher.TID
LEFT OUTER JOIN
leave_new_view_teacher AS lnvt2 -- and here
ON
dates.dates = leave_new_view_teacher.LeaveDate
您还需要正确分类SELECT
部分中的列:
SELECT
...
lnvt1.Leave_Status, -- you're probably getting this from first join
mst_teacher.Teacher_Name,
lnvt2.LeaveDate -- this probably comes from second join
您也不需要每个ON
子句的括号,因此我已将其删除。