Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更正我的SQL查询中的相关名称_Sql Server - Fatal编程技术网

Sql server 更正我的SQL查询中的相关名称

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

我有下面的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_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)