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

MySQL每个派生表都必须有自己的别名,mysql,jointable,Mysql,Jointable,嗨,我需要通过连接两个查询来生成一个sql查询 第一个查询:获取所有学生数据 SELECT * FROM students where class = 1 and section = 'A' 第二个查询:获取每次出席人数 SELECT roll_no,full_name, SUM(hasAttended= 'P') AS DaysPresent, SUM(hasAttended= 'A') AS DaysAbsent, COUNT(*) AS totalClasses FROM

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

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

SELECT * FROM students where class = 1 and section = 'A'
第二个查询:获取每次出席人数

SELECT  roll_no,full_name, 

SUM(hasAttended= 'P') AS DaysPresent, 

SUM(hasAttended= 'A') AS DaysAbsent, 

COUNT(*) AS totalClasses

FROM     attendance

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

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

1248-每个派生表都必须有自己的别名 我的质询如下:

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要求所有派生表和子查询都有别名。子QQuery的右括号末尾缺少别名:

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

通常,子QQuery需要一个别名,如上所述。我还有一个问题已经解决了。您可以看到我已解决的问题。i、 e

SELECT SUM(total_items) AS sum_total
FROM 
(SELECT COUNT(imt.item_id) AS total_items
    FROM item_master_tbl imt
    INNER JOIN map_category_item_tbl mci 
                ON imt.item_id=mci.item_id
    INNER JOIN category_master_tbl cmt 
                ON mci.category_id=cmt.category_id
    GROUP BY cmt.category_id) alias_name;

您需要为内部联接的第二个表指定它自己的别名。按att.roll\u no分组后应该跟一个别名。就是这样??!!!天哪,问这个问题让我觉得很傻。非常感谢你的回答:如果我必须加入表格学生的where子句[where class=1]。。那么我需要在哪里添加它呢?非常感谢您的帮助!