了解MySQL如何获取具有相同用户id的数据
我在一张记录学生上课情况的桌子上工作。使用学生识别号、课程id、课程名称、开始日期、结束日期保存数据。学生可以参加多个课程,因此有重复的学生识别号,但课程id、课程名称、开始日期和结束日期不同。我在这里尝试的是根据使用DATEDIFF的天数来选择学生 对不起,没有正确地解释我的问题。我所说的表的结构:了解MySQL如何获取具有相同用户id的数据,mysql,sql,join,subquery,correlated-subquery,Mysql,Sql,Join,Subquery,Correlated Subquery,我在一张记录学生上课情况的桌子上工作。使用学生识别号、课程id、课程名称、开始日期、结束日期保存数据。学生可以参加多个课程,因此有重复的学生识别号,但课程id、课程名称、开始日期和结束日期不同。我在这里尝试的是根据使用DATEDIFF的天数来选择学生 对不起,没有正确地解释我的问题。我所说的表的结构: studcourse1(internalstudentid, staffnoic, courseid, coursenm, StDt, EndDt, location, organizer, ge
studcourse1(internalstudentid, staffnoic, courseid, coursenm, StDt, EndDt, location, organizer, generalcategorycd, generalsubcategorycd, eid)
staffnoic-员工识别号,
StDt-开始日期。
EndDt-结束日期
我已经检查过了,这个表上没有主键或索引,因为它不是一个基,而是一个视图
抱歉,如果上一条语句太长。让我们用这个来代替
SELECT GradeGroupCd, StudCourse1.StaffNoIC, (DATEDIFF( EndDt, StDt ) +1) TotalDay, StDt, EndDt
FROM StudCourse1, tblStaff, tblRefTitleGred
WHERE tblStaff.TitleGredCd = tblRefTitleGred.TitleGredCd
AND StudCourse1.StaffNoIC = tblStaff.StaffNoIC
AND StDt >= '2009-1-1' AND YEAR(EndDt) <= YEAR(NOW())
AND (DATEDIFF( EndDt, StDt ) +1) > 90
AND (GeneralSubCategoryCd = 'S0012' OR GeneralSubCategoryCd = 'S0014')
GROUP BY GradeGroupCd, StudCourse1.StaffNoIC
运行SQL语句将选择StDt为2010-01-01 00:00:00和EndDt为2010-12-31 00:00:00的语句。为什么它要挑出那个记录而不是其他记录,因为它们都属于“2009-1-1”和“年份(EndDt)90”,为什么它要在它上面加1?DATEDIFF(EndDt,StDt)>90不是正确的吗
如果问题太多,很抱歉。请最近学习MySQL。谢谢您的时间。好的,很难理解您所写的内容。请提供您使用的表和结构 完成这项工作的最简单方法是使用3个表, 1) 具有学生id、姓名等的学生 2) 课程-课程id、课程名称等。 3) 注册-注册id、开始日期、结束日期和外键(学生id和课程id)
我不明白你的意思(我在这里试图根据使用DATEDIFF的天数来选择学生。)请将表格结构发布为CREATE table语句。一些示例输入数据也会很好。谢谢!是的,表格结构+可能是您试图实现的内容的文本描述+基于示例数据的示例结果将非常有用。可能只是我,但我甚至找不到“学生识别号”“在查询中。首先,您可以将隐式联接转换为显式联接,并读取and
studcourse1(internalstudentid, staffnoic, courseid, coursenm, StDt, EndDt, location, organizer, generalcategorycd, generalsubcategorycd, eid)
studcourse1(10629,111111111111,AAA1811,Course1,2010-01-01 00:00:00, 2010-12-31 00:00:00, '', ABC Org, G003, S0012, E00001812)
(30684,111111111111,AAA6968,Course2,2009-02-10 00:00:00, 2012-02-09 00:00:00, '', ABC Org, G003, S0012, E00006894)
(30685,111111111111,AAA6970,Course3,2011-01-01 00:00:00, 2012-02-09 00:00:00, '', ABC Org, G003, S0014, E00006896)