2011-04-25 82 views
0

我的託管公司不允許我保存查詢/查看mysql數據庫(不要問我爲什麼!我不知道),所以我要建立一個所有在一個嵌套查詢(這是我的SQL技能很難)。 我的應用程序是一個簡單的「機票同治系統」 這裏表結構ticket_master幫助嵌套查詢

ticket_id 
assignedto_user 
... 

其他表,供用戶

userid 
username 

我已經讓每個用戶票的數量,開始從USERS表中包含所有用戶(或者未打開票證的用戶)。

結果必須提前

userid, username, tot_ticket 
1, mr a, 3 
2, mr b, Null (or zero) 
3, mr c, 2 
4, mr d, Null (or zero) 
... 

謝謝!

回答

1
Select U.userid, U.username 
    , Count(TM.ticket_id) As tot_ticket 
From users As U 
    Left Join ticket_master As TM 
     On U.userid = TM.assignedto_user 
Group By U.userid, U.username 
+0

'COUNT'永遠不可能是'NULL',可能你需要'NULLIF'或其他東西。 – 2011-04-25 22:16:54

+0

@Martin - 是的,是的。在我重新閱讀我的查詢時發生在我身上。 – Thomas 2011-04-25 22:17:32

+0

@Martin - (我打得比任何東西都要多,必須得到更多的咖啡......) – Thomas 2011-04-25 22:18:15

1
SELECT 
    userid, 
    username, 
    COUNT(ticket_id) 
FROM users 
    LEFT OUTER JOIN ticket_master on users.userid = ticket_master.assignedto_user 

比@Thomas答案沒有太大的不同,但我會避免編組,如果你的用戶列表已經是獨一無二的。