Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
Mysql 合并来自两个SQL查询的代码_Mysql_Sql - Fatal编程技术网

Mysql 合并来自两个SQL查询的代码

Mysql 合并来自两个SQL查询的代码,mysql,sql,Mysql,Sql,我试图将两个独立(但密切相关)的sql查询的内容结合起来,但发现很难得到不返回语法错误的内容 当前正在工作的两个查询是 SELECT module.ModuleCode, demonstrator.FK_Course, slot.fk_ModuleCode, programme.C_val, Count(slotdemo.FK_Demonstrator) AS CountOfFK_Demonstrator FROM programme IN

我试图将两个独立(但密切相关)的sql查询的内容结合起来,但发现很难得到不返回语法错误的内容

当前正在工作的两个查询是

SELECT module.ModuleCode,
       demonstrator.FK_Course,
       slot.fk_ModuleCode,
       programme.C_val,
       Count(slotdemo.FK_Demonstrator) AS CountOfFK_Demonstrator
FROM programme
INNER JOIN (demonstrator
            INNER JOIN (((module
                          INNER JOIN slot ON module.ModuleCode = slot.fk_ModuleCode))
                        INNER JOIN slotdemo ON slot.SlotNo = slotdemo.FK_SlotNo) ON demonstrator.StudentID = slotdemo.FK_Demonstrator) ON programme.COURSE = demonstrator.FK_Course
WHERE demonstrator.`undergraduate`=1
GROUP BY module.ModuleCode

错误消息,因为它的价值(不多)是:

#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法 接近“ON week.Hour=slottime.FK_Hour WHERE 演示者。本科生=我们在第17行的1组


我认为您需要将两个数据集合并在一起。只需使用UNION运算符:

(SELECT .... FROM t1)
UNION
(SELECT ... FROM t2)

两个选项应返回相同的列,如果名称不同,您可以使用
AS
对其进行重命名。

请描述您希望在此处实现的目标。样本源数据和结果也没有错!移除
内部连接中的
部分。这些是不需要的。@Shadow我很想…但在这种情况下,它将重新发明轮子(我相信这是一个相当棘手问题的95%解决方案)。解释和理解整个逻辑问题需要一段时间,而我认为现在唯一的限制因素是语法。@Stumbler然后我投票结束这个问题,因为不清楚。没有描述您想要实现的内容,没有确切的错误消息表明mysql在sql语句中发现了错误或者。@Shadow我想正确地编写上述查询的联接,以便将前面两个有效的sql查询的逻辑结合起来。错误消息是为了说明它的价值(不多)is#1064-您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解可在“ON week.Hour=slottime.FK_Hour WHERE demonstrator.”第17行使用的正确语法
SELECT
       week.Hour,
       module.color,
       module.moduleName,
       module.num_ugdemos,
       slot.fk_Room,
       slot.fk_ModuleCode,
       slottime.FK_Hour,
       slottime.FK_SlotNo,
       programme.C_val,
       Count(slotdemo.FK_Demonstrator) AS CountOfFK_Demonstrator
FROM
    week
INNER JOIN
(
    (
        programme
    INNER JOIN
        (
            demonstrator
        INNER JOIN
            (
                (
                    (
                        module
                    INNER JOIN
                        slot
                            ON module.ModuleCode = slot.fk_ModuleCode
                    )
                )
            INNER JOIN
                slotdemo
                    ON slot.SlotNo = slotdemo.FK_SlotNo
            )
                ON demonstrator.StudentID = slotdemo.FK_Demonstrator
        )
            ON programme.COURSE = demonstrator.FK_Course
    )
        ON week.Hour = slottime.FK_Hour
WHERE
    demonstrator.`undergraduate`=1
GROUP BY week.Hour,
         module.moduleName,
         module.color,
         slot.SlotNo,
         slot.fk_ModuleCode,
         slot.fk_Room,
         slottime.FK_Hour,
         programme.C_val
(SELECT .... FROM t1)
UNION
(SELECT ... FROM t2)