如何找到誰是兩個以上企業從以下 表工作對員工的名字:需要解決這個sql查詢
Employee (employee_name, street, city, age)
Works (employee_name, company_name, salary)
如何找到誰是兩個以上企業從以下 表工作對員工的名字:需要解決這個sql查詢
Employee (employee_name, street, city, age)
Works (employee_name, company_name, salary)
這應該讓你誰是工作超過2員工姓名公司。如果您需要更多詳細信息,則可以加入Employee表。
SELECT
employee_name
FROM
Works
GROUP BY
employee_name
HAVING
COUNT(*) > 2
SELECT employee_name FROM Works GROUP BY employee_name HAVING COUNT(*) > 2
這使得與代表一次每個員工的列表,然後過濾掉,這樣只有那些有兩個以上的記錄有助於組顯示的員工。
除了較早前提供的答案(這是正確的BTW),如果你需要加入的表,可以考慮使用數字作爲主鍵(我假設employee_name是兩個表中的主鍵)。
這會加快您的查詢(前提是你有很多的記錄中的一個或兩個表),因爲你的DBMS會比較整數而不是字符串,這是相當快。
完全依賴於由數據庫使用的索引方案。大多數人會在名字上使用散列,因此在那裏速度不會太快。您不太可能找回失去的性能,因爲現在必須維護員工的兩個索引,一個用於ID(用於連接),另一個用於employee_name(用於搜索)。通常,最好使用正確的數據表示並讓數據庫處理優化。 (由於其他原因,Employee_name不是很好的PK,性能可能不是其中之一)。 –