首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql中的子查询

Mysql中的子查询
EN

Stack Overflow用户
提问于 2014-11-15 06:00:59
回答 2查看 40关注 0票数 0

我正在尝试统计在数据库中登录的用户,问题是按日期计算uniq登录。问题是,用户在一天内可能会有多个登录。

例如表学生StudentID

小时TypeID = StudentID,日期,时间123,2014-11-11,00:11:00 123,2014-11-11,00:15:00 123,2014-11-11,00:16:00等。

我正在尝试使用这个查询...

代码语言:javascript
复制
    select count(*) from (
select '1' from Students s LEFT JOIN Hours h on s.StudentID = h.TypeID
where s.StudentID = stud.StudentID
group by h.Date) tmp, Student stud
where s.LastName = 'TestUser'

但是子查询显示错误:未知列stud.StudentID

EN

回答 2

Stack Overflow用户

发布于 2014-11-15 06:07:18

错误非常明显,列StudentID在"stud“别名中不存在。您可以将别名定义为"s“。可能是这样的:

代码语言:javascript
复制
select count(*) from (
    select '1' from Students s 
    LEFT JOIN Hours h on s.StudentID = h.TypeID
    where s.StudentID = h.StudentID
    group by h.Date
) tmp

但这不会生效,因为您没有选择任何内容。

代码语言:javascript
复制
, Student s
where s.LastName = 'TestUser'

但我认为这仍然不是功能性的。你想做什么?

票数 0
EN

Stack Overflow用户

发布于 2014-11-17 13:59:24

试试这个:

代码语言:javascript
复制
Select h.Date, Count(Distinct TypeID) as tot
From [Hours] as h
Left Join Students s
    On s.StudentID = h.TypeID
where s.LastName = 'TestUser'
Group By h.Date
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26939573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档