MySQL 每个派生表都必须有自己的别名

标签 mysql jointable

您好,我需要通过连接两个查询来生成一个 sql 查询

第一个查询:获取所有学生数据

SELECT * FROM students where class = 1 and section = 'A'

enter image description here

第二个查询:获取每次出席的次数

SELECT  roll_no,full_name, 

SUM(hasAttended= 'P') AS DaysPresent, 

SUM(hasAttended= 'A') AS DaysAbsent, 

COUNT(*) AS totalClasses

FROM     attendance

GROUP BY roll_no

enter image description here

现在我需要连接两个表并生成一个结果表

我正在尝试以下查询但出现错误:

1248 - Every derived table must have its own alias

我的查询如下:

SELECT * FROM students as st

INNER JOIN 

(SELECT  att.roll_no,att.full_name, 

SUM(att.hasAttended= 'P') AS DaysPresent, 

SUM(att.hasAttended= 'A') AS DaysAbsent, 

COUNT(*) AS totalClasses

FROM     attendance as att

GROUP BY att.roll_no)

ON st.roll_no = att.roll_no

ORDER BY  st.roll_no

谁能解决上面的错误

最佳答案

MySQL 要求所有派生表和子查询都有一个别名。您在子查询的右括号末尾缺少别名:

SELECT * 
FROM students as st
INNER JOIN 
(
  SELECT  att.roll_no,att.full_name, 
    SUM(att.hasAttended= 'P') AS DaysPresent, 
    SUM(att.hasAttended= 'A') AS DaysAbsent, 
    COUNT(*) AS totalClasses
  FROM     attendance as att
  GROUP BY att.roll_no
) att  ---------------------------< this is missing
  ON st.roll_no = att.roll_no
WHERE st.class = 1 
ORDER BY  st.roll_no

关于MySQL 每个派生表都必须有自己的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785925/

相关文章:

hadoop - 如何使用 Hive 处理倾斜数据?

PHP - 如何检查变量是否与数据库条目匹配?

PHP - MySQL - 选择无限期运行

join - Doctrine 2 连接表 + 额外字段

c# - 如何使用 Entity Framework 7 在代码优先方法中处理这两个模型?

joinTable(旧数据库)中多对多关系中复合键的Grails自定义名称

mysql - 如何使用其他两个列的值的差异按 desc 顺序使用 order by 子句对表进行排序

php - 访问mysql数据库中的多个表

php - fatal error : Call to undefined function mysqli_result()

hibernate - 如何将两列值与 hibernate 限制进行比较