2014-05-12 3 views
0

두 개의 테이블 작업이 있다면, employee. 작업에서 모두 선택하고 각 작업에 대해 직원 수를 추가해야합니다.여러 테이블에서 mysql을 선택하십시오.

내가 직장에서 모두 선택하고 각 작업에 대한 직원의 수를 추가 할 필요가

job table 
+-------------+-------------+ 
| id   | name  | 
+-------------+-------------+ 
| 1   | Teacher  | 
+-------------+-------------+ 
| 2   | Engineer | 
+-------------+-------------+ 
| 3   | Programmer | 
+-------------+-------------+ 

employee table 
+-------------+-------------+-------------+ 
| id   | name  | job_id | 
+-------------+-------------+-------------+ 
| 1   | employee N |  1  | 
+-------------+-------------+-------------+ 
| 2   | employee N |  2  | 
+-------------+-------------+-------------+ 
| 3   | employee N |  3  | 
+-------------+-------------+-------------+ 
| 4   | employee N |  1  | 
+-------------+-------------+-------------+ 
| 5   | employee N |  3  | 
+-------------+-------------+-------------+ 
| 6   | employee N |  1  | 
+-------------+-------------+-------------+ 

세웠 결과.

당신은 작업 ID를 그룹에 다음 GROUP BY 테이블을, 가입 INNER JOIN를 사용하려면

Result table 
+-------------+-------------+--------------+ 
| id   | name  |employee count| 
+-------------+-------------+--------------+ 
| 1   | Teacher  |  3  | 
+-------------+-------------+--------------+ 
| 2   | Engineer |  1  | 
+-------------+-------------+--------------+ 
| 3   | Programmer |  2  | 
+-------------+-------------+--------------+ 

답변

2

을 살고 볼 수 있습니다 가입 :)

SELECT job.id, job.name, count(*) AS 'employee count' 
FROM job 
LEFT JOIN employee 
ON job.id = employee.job_id 
GROUP BY job.id 
1

세웠 결과. 마지막으로 각 그룹의 수를 얻을 수 COUNT()를 사용

SELECT job.id, job.name, count(*) AS employee_count 
FROM job 
INNER JOIN employee 
    ON job.id = employee.job_id 
GROUP BY job.id 

당신이 여기에 내가 왼쪽으로 사용하려면 http://sqlfiddle.com/#!2/9d59c1/1

관련 문제