作者jscorpio1 (我 天蠍)
看板Database
标题[SQL ] 取出签到退时间
时间Wed Oct 21 23:02:18 2015
资料库名称: mysql
资料库版本: 5.5.x
内容/问题描述:
活动报名系统,要捞出某一场活动,有出席的人,的签到退纪录
最终页面要显示出
帐号 姓名 签到退时间 总计时间
ppp 张三 10:00
11:00 1 hr
kkk 李四 10:10
10:40 0.5 hr
假设活动代号actno=2
table A - 帐号资料
userid, username, .......
table B - 报名纪录
enrollno, actno, userid, allowed
table C - 签到退纪录
attendno, userid, actno, record
目前的语法是
SELECT A.userid, A.username c.record
FROM A JOIN B ON A.userid = B.userid
JOIN C ON B.userid = C.userid
WHERE B.actno=2 AND B.allowed=1
上面这段的显示结果是
ppp 张三 10:00
ppp 张三 10:00
ppp 张三 10:00
ppp 张三 11:00
ppp 张三 11:00
ppp 张三 11:00
kkk 李四 10:10
kkk 李四 10:10
kkk 李四 10:10
会印3次,後来加了GROUP BY才只印1次
请问我的语法对吗? 不对的,该如何下呢?
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.235.128.220
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1445439742.A.D87.html
1F:→ moyasi: 报名记录跟签退到记录的关联不可能只有userid吧 10/22 09:58
2F:→ jscorpio1: 还有actno,所以JOIN C的条件要改成actno吗? 10/22 14:40