2012-01-26 74 views
0

我有兩個表,如何從兩個表計數,而子查詢在MySQL

department 
———- 
deptid (type: INT) 
deptname (type: TEXT) 
hours (type: INT) 
active (type: BIT) 

employee 
——– 
empid (type: INT) 
empname (type: TEXT) 
deptid (type: INT) 
designation (type: TEXT) 
salary (type: INT) 

現在該怎麼做查詢,而無需使用子查詢返回的列empname和屬於那些有部門員工的deptname人數在4人以上。記錄應按字母順序重新輸入。

+0

我已經解決這樣的:選擇e.empname,d.deptname,d.'deptid'from員工ē內部聯合部門d其中e.'deptid' = d.'deptid'和e.'deptid'(通過deptid從僱員組中選擇deptid,具有(count('deptid'))> = 4)通過e.empname排序;但我想沒有子查詢。 –

回答

1

因爲你有一個合一條件(4個或更多的頭數),這意味着沒有子查詢,你不能得到empname但只有deptname

0
Select E.empName, D.DeptName, count(E2.EmpID) 
FROM Department D 
LEFT JOIN Employee E 
    ON E.DeptID = D.DeptID 
LEFT JOIN Employee E2 
    ON E.DeptID = D.DeptID 
GROUP BY E.EmpName, D.DeptName 
Having count(e2.empID) >=4 
0

我沒有測試過,但是這看起來我的權利

SELECT empname, deptname, department.deptid 
FROM employee JOIN department ON employee.deptid = department.deptid 
GROUP BY department.deptid 
HAVING count(department.deptid) >= 4 
ORDER BY empname; 
+1

如果按部門ID對他們進行分組,則不會看到每個部門的所有姓名。 – Josh