php - 发生数据库错误错误号: 1066 Not unique table/alias:

标签 php mysql sql

嘿,我正在构建非常复杂的查询,我不知道它的计算是否复杂,但由于我是 SQL 新手,所以这非常复杂

错误消息:

A Database Error Occurred Error Number: 1066 Not unique table/alias: 'bb'

 SELECT cl.*,
            (CASE  
                WHEN id_student IS NOT NULL THEN 'BOOKED' ELSE 
                (
                    CASE 
                    WHEN (max_count - student_count) > 0 THEN 'AVAILABLE' ELSE 'FULL'
                    END
                )
            END) AS course_status        
        FROM (    
                SELECT         aa.*, bb.id_student, cc.max_count, dd.student_count
                FROM        (
                                    SELECT c.id_course, c.id_study, c.id_level, c.id_teacher, c.course_date, 
                                s.study_name,
                                t.teacher_name,
                                t.teacher_picture
                                FROM tbl_course c
                                LEFT JOIN tbl_study s ON s.id_study = c.id_study
                                LEFT JOIN tbl_teacher t ON t.id_teacher = c.id_teacher
                                WHERE
                                CONCAT('"', REPLACE(c.id_level, ',', '","'), '"') LIKE '%"64"%'
                                AND c.id_study = '2'
                                AND c.course_date 
                                AND c.id_study = '2'AND c.course_date 
                                     BETWEEN "2016-10-02 00:00:00" AND "2016-10-09 23:59:59" ORDER BY c.course_date ASC
                                    ) aa
                LEFT JOIN      (
                                        SELECT     id_student, id_course
                                        FROM     tbl_course_student 
                                            WHERE id_student = '305'
                                              AND id_study = '2'
                                    ) bb ON aa.id_course = bb.id_course
                LEFT JOIN        (
                                    SELECT SUM(student_count_max) AS max_count, course_date
                                    FROM tbl_course
                                    WHERE id_study = '2'
                                         AND course_date BETWEEN "2016-10-02 00:00:00" AND "2016-10-09 23:59:59" 
                                              AND id_study = '2') bb ON bb.id_course = aa.id_course 
                LEFT JOIN        (
                                    SELECT SUM(student_count_max) AS max_count, course_date
                                    FROM tbl_course
                                    WHERE id_study = '2'AND course_date BETWEEN "2016-10-02 00:00:00" AND "2016-10-09 23:59:59" 
                                         AND CONCAT('"', REPLACE(id_level, ',', '","'), '"') LIKE '%"64"%'
                                    GROUP BY course_date, id_study
                                ) cc ON aa.course_date = cc.course_date
                LEFT JOIN       (
                                        SELECT SUM(student_count) AS student_count, course_date
                                  FROM      tbl_course 
                                    WHERE id_study = '2'
                                         AND course_date BETWEEN "2016-10-02 00:00:00" AND "2016-10-09 23:59:59" 
                                         AND CONCAT('"', REPLACE(id_level, ',', '","'), '"') LIKE '%"64"%'
                                         AND course_date BETWEEN "2016-10-02 00:00:00" AND "2016-10-09 23:59:59" AND CONCAT('"', REPLACE(id_level, ',', '","'), '"') LIKE '%"64"%'
                                    GROUP BY course_date, id_study
                                     ) dd ON aa.course_date = dd.course_date
        ) cl
        GROUP BY course_date, course_status

我的问题:我哪里做错了?我的意思是,我一遍又一遍地阅读这些查询,但我什么也没找到。

最佳答案

您有 2 倍的别名“bb”

在您第一次加入时:

) bb ON aa.id_course = bb.id_course

在您的第二次加入中:

AND id_study = '2') bb ON bb.id_course = aa.id_course 

您需要将其中 1 个重命名为另一个别名(并在您的使用中正确映射它)。

关于php - 发生数据库错误错误号: 1066 Not unique table/alias:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39847021/

相关文章:

PHPExcel 文件不是正确的 Microsoft Excel 2003 XLS 格式

sql - 平面到多层嵌套数据

c# - MySQL - 键 "PRIMARY"的重复条目

mysql - 如何将存储在引用表中的引用值插入到另一个表中?

javascript - else if 在ajax登录表单中不起作用

php - XmlHTTP请求 : "XML Parsing Error: no element found"

javascript - jQuery 旋钮释放功能附加参数

Java 在 servlet 上下文中存储与数据库查找

两个单独的 JOIN 中的 MySQL COUNT 行给出了错误的结果

mysql - 如何使用 Rails ActiveRecord 迁移将主键插入 MySQL 数据库?