Sql server 更正我的SQL查询中的相关名称
我有下面的SQL查询,我想从我的SQL数据库中提取每个项目的计数及其名称,例如“FillingOption” 我一直收到以下错误消息 Msg 1013,16级,状态1,第13行 FROM子句中的对象“school\u to\u chedule\u teacher”和“school\u to\u chedule\u teacher”具有相同的公开名称。使用相关名称来区分它们 查询如下:Sql server 更正我的SQL查询中的相关名称,sql-server,Sql Server,我有下面的SQL查询,我想从我的SQL数据库中提取每个项目的计数及其名称,例如“FillingOption” 我一直收到以下错误消息 Msg 1013,16级,状态1,第13行 FROM子句中的对象“school\u to\u chedule\u teacher”和“school\u to\u chedule\u teacher”具有相同的公开名称。使用相关名称来区分它们 查询如下: SELECT COUNT(*) AS count, Monday_Sandwich_Ro
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\u-to\u-school\u-teacher”部分
我已尝试将SchoolTable.SchoolID声明为TEST
,但这不起作用
任何人都有任何想法。所以您基本上希望这样做(我删除了重复/多余的连接): 但是,您还缺少上一个join
内部join SchoolTable上的join条件
在SchoolTable.SchoolID上
..?所以您基本上希望这样做(我删除了重复/多余的连接):
但是,您还缺少上一个join内部join SchoolTable上的join条件
在SchoolTable.SchoolID上
…?您使用了两次相同的名称。服务器无法知道在每个ON
子句中要使用哪个school\u to\u教室\u teacher
。添加别名,例如t1上的内部加入学校到教室教师t1。teacherID。您确实需要开始使用别名。为什么要加入两次学校到教室教师?如果需要,则需要如上所述对每个实例进行别名。此外,您对SchoolTable的连接需要设置为等于某个值。这是否回答了您的问题?如果要两次使用同一个表,则需要使用alias
。检查这个答案,你用的是同一个名字两次。服务器无法知道在每个ON
子句中要使用哪个school\u to\u教室\u teacher
。添加别名,例如t1上的内部加入学校到教室教师t1。teacherID。您确实需要开始使用别名。为什么要加入两次学校到教室教师?如果需要,则需要如上所述对每个实例进行别名。此外,您对SchoolTable的连接需要设置为等于某个值。这是否回答了您的问题?如果要两次使用同一个表,则需要使用alias
。检查这个答案
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
and [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)