作者grassboy2 (天才小胖子-活力花俏草儿)
看板Database
标题[SQL ] 同时查两块资料表的"个数"?
时间Thu Jan 25 03:44:10 2007
嗯嗯…小弟使用的是MySQL…
最近遇到一个资料库结构有三个table如下…
student //存学生资讯的资料表
student_id //学号
:
:
miss_class //存学生的跷课记录
index //记录序号
student_id //学生学号
date //跷课日期
class //跷第x堂课
:
:
work //存学生的劳动服务次数
index //次数序号
student_id //学生学号
time //劳动服务年月日时分秒
:
:
今天想要藉由SQL指令抓出「某个学号为n的同学跷了x堂课,且作了y次劳动服务」
目前是想到一个方法…是用暂存资料表的方式达成的…
SQL指令如下:
SELECT `tmp1`.`n`
`tmp1`.`x`
COUNT(`work`.`index`) AS `y`
FORM (
SELECT `student`.`student_id` AS `n`
COUNT(`miss_class`.`index`) AS `x`
FROM `student`
LEFT JOIN `miss_class` ON `student`.`student_id` = 'n'
AND `student`.`student_id` = `miss_class`.`student_id`
GROUP BY `miss_class`.`student_id`
) AS `tmp1`
LEFT JOIN `work` ON `tmp1`.`n` = `work`.`student_id`
GROUP BY `work`.`student_id`
如此一来…应该可以达到所要的效果…
不过这样相当於两段式的Query...
不知道板上的高手们是否还有更有效率的Query…
还是上面这道Query本身就有Bug了@@a
先谢谢板上的高手们指教了m(_ _)m
--
╔作者 grassboy2 来自 ptt.cc 的怒吼!
█ ◎P_GrassboyWebBBS版【http://WebGrassboy.twbbs.org】
Design By Grassboy@MDS 白日梦工作室 ╚─你现在还以为,浏览器不能打逼吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.214.146