0

誰かが見てくれることを望んでいた小さな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だけでなく、すべての行に表示されるようにしたいと思います。

どうもありがとう

4

1 に答える 1

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
于 2012-08-15T17:03:00.997 に答える