2014-11-14 28 views
0

我正在尝试计算用户在数据库中的登录次数,问题是计算uniq登录日期。问题是,用户每天可以进行多次登录。Mysql中的子查询

例如表学生 StudentID

小时 TYPEID = StudentID,日期,时间 123,2014年11月11日,0点一十一分00秒 123,2014年11月11日,00:15: 00 123,2014年11月11日,零时十六分00秒 等

我试图用这个查询...

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' 

但子查询中显示了一个错误:未知的合作lumn stud.StudentID

+0

你能不能做一个SQL小提琴? – 2014-11-14 22:11:07

回答

0

错误非常明显,column StudentID不存在于“stud”别名中。您将别名定义为“s”。 也许是这样的:

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 

但因为你没有选择任何东西,这将不会生效。

, Student s 
where s.LastName = 'TestUser' 

但我认为仍然没有功能。你想做什么?

+0

该列存在于别名stud中 我试图计算uniq用户访问内部的大查询。 – 2014-11-17 18:09:24

0

试试这个:

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