我有两个SQL查询SQL查询 - 我的查询需要哪种类型的JOIN?
第一次查询:我得到除日,所有细节相关细节
SELECT att.roll_no AS `att_roll_no`,att.full_name,att.st_class,att.st_section,
SUM(att.hasAttended= 'P') AS DaysPresent,
SUM(att.hasAttended= 'A') AS DaysAbsent,
COUNT(DISTINCT att.att_date) AS WorkingDays,
COUNT(*) AS totalClasses
FROM attendance as att
WHERE att.st_class = 1 AND att.st_section = 'A'
GROUP BY att.roll_no
上面查询的输出表如下:
第二次查询:我只收到日期相关的详细信息
SELECT hasAttended, att_date FROM attendance
WHERE st_class = 1 AND st_section = 'A' AND att_date = 'Tue Apr 02 2013'
GROUP BY roll_no
上面查询的输出表如下:
现在我需要将以上两个表连为一体的表。
我曾尝试
在我使用INNER JOIN生成的查询。它如下:
SELECT
att_outer.hasAttended,
att_outer.att_date
FROM
attendance AS att_outer
INNER JOIN(
SELECT
att.roll_no AS `att_roll_no`,
att.full_name,
att.st_class,att.st_section,
SUM(att.hasAttended= 'P') AS DaysPresent,
SUM(att.hasAttended= 'A') AS DaysAbsent,
COUNT(DISTINCT att.att_date) AS WorkingDays,
COUNT(*) AS totalClasses
FROM
attendance as att
WHERE
att.st_class = 1
AND att.st_section = 'A'
GROUP BY att.roll_no
)att ON att_outer.roll_no = att.roll_no
WHERE
att_outer.st_class = 1
AND att_outer.st_section = 'A'
AND att_outer.att_date = 'Tue Apr 02 2013'
GROUP BY roll_no
但我收到以下错误:
#1054 - Unknown column 'att.roll_no' in 'on clause'
请让我知道结果查询是否正确与否。也加入我使用的是否正确。
谢谢。
好的感谢指出,但在我的结果表中,我只得到我的外表的行。 。我需要我的内表的行以及... – NealCaffrey 2013-04-07 12:42:10
看到我更新的答案。你还没有预测到它。还删除了“GROUP BY”子句。 – 2013-04-07 12:44:18
非常感谢您的回答!这是完美的 !! :-) – NealCaffrey 2013-04-07 12:49:18