2014-11-14 51 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