【发布时间】:2020-02-17 17:24:43
【问题描述】:
我有以下 SQL 查询,我想在其中提取每个项目的计数及其名称,例如我的 SQL 数据库中的“FillingOption”。
我不断收到以下错误消息
消息 1013,第 16 级,状态 1,第 13 行 FROM 子句中的对象“school_to_classroom_teacher”和“school_to_classroom_teacher”具有相同的公开名称。使用相关名称来区分它们。
查询如下:
SELECT
COUNT(*) AS count,
Monday_Sandwich_Roll_Filling.FillingOption
FROM
#tempCustomer
INNER JOIN Monday_Sandwich_Roll_Filling
ON #tempCustomer.LunchMon=Monday_Sandwich_Roll_Filling.FillingOption
INNER JOIN school_to_classroom_teacher
ON #tempCustomer.teacherID= school_to_classroom_teacher.teacherID
INNER JOIN [teacherClassroom Table]
ON #tempCustomer.teacherID= [teacherClassroom Table].teacherID
inner join school_to_classroom_teacher
on [teacherClassroom Table].teacherID=school_to_classroom_teacher.teacherID
inner join SchoolTable
on SchoolTable.SchoolID
WHERE
(SchoolTable.mondayOn = 1)
AND school_to_classroom_teacher.schoolid = 1
AND([teacherClassroom Table].Available = 1)```
对混乱的查询表示歉意,但它是 WHERE 子句旁边的“SchoolTable.SchoolID”和“school_to_classroom_teacher strong>" 不喜欢的查询部分。
我尝试过声明SchoolTable.SchoolID AS TEST,但这不起作用。
任何人都有任何想法。
【问题讨论】:
-
您两次使用了相同的名称。服务器无法知道您想在每个
ON子句中使用哪个school_to_classroom_teacher。添加别名,例如INNER JOIN school_to_classroom_teacher t1 on t1.teacherID。 -
你真的需要开始使用别名了
-
为什么您要加入
school_to_classroom_teacher两次?如果需要,则需要如上所述为每个实例设置别名。此外,您对 SchoolTable 的加入需要设置为等于某个值。 -
如果您使用同一张表两次,您需要使用
alias。检查这个答案stackoverflow.com/questions/8956577/…
标签: sql-server