2012-08-15 10 views
0

有一個小的MySql問題我希望有人可以看看。MySql計數從其他表作爲連接並添加到結果的每一行

當前的SQL:

SELECT IFNULL(ua.total, 0) applications, 
     users_applications.job_id as job_id, 
     users.* 
FROM users_applications 
     LEFT OUTER JOIN users 
      on (users_applications.user_id = users.id) 
     LEFT OUTER JOIN ( 
          SELECT COUNT(*) total, job_id, id 
          FROM users_applications 
          GROUP BY job_id) AS ua 
        ON (users_applications.id = ua.id) 

這是偉大的,它的返回是這樣的:

applications | job_id | user_id | 
------------------------------- 
3  | 1001 | 1001 | 
0  | 1001 | 1002 | 
0  | 1001 | 1003 | 
1  | 1003 | 1004 | 
1  | 1003 | 1005 | 
0  | 1004 | 1006 | 

雖然該作業它只是做它的第一行計數的應用程序的數量,我希望它出現在每一行中,而不是現在的後續行中的0。

非常感謝

+0

因此,這意味着job_id的所有記錄都有'3個應用程序'? – 2012-08-15 16:55:58

回答

2

試試這個。

SELECT c.totalCount, 
     a.job_id, 
     a.user_id 
FROM users_applications a 
      LEFT JOIN users b 
       ON a.user_ID = b.ID 
      LEFT JOIN 
       (
        SELECT job_ID, count(*) totalCount 
        FROM user_applications 
        GROUP BY job_ID 
       ) c on a.job_ID = c.jobID 
+0

喔!非常感謝你。所以基本上我加入了job_id而不是用戶ID。 – OzTheGreat 2012-08-15 17:15:02

相關問題