需要解决这个sql查询

时间:2012-09-29 17:02:35

标签: mysql sql

如何查找以下从事2家以上公司的员工姓名 表:

Employee (employee_name, street, city, age)

Works (employee_name, company_name, salary)

3 个答案:

答案 0 :(得分:4)

这可以让您获得为2家以上公司工作的员工姓名。如果您需要更多详细信息,可以加入Employee表。

SELECT
 employee_name
FROM
 Works
GROUP BY
 employee_name
HAVING
 COUNT(*) > 2

答案 1 :(得分:1)

 SELECT employee_name FROM Works GROUP BY employee_name HAVING COUNT(*) > 2

这会生成一个列表,其中每个员工都代表一次,然后过滤掉员工,以便只显示那些对该组有贡献的记录超过两个的员工。

答案 2 :(得分:0)

除了之前提供的答案(btw是正确的)之外,如果您需要加入表,请考虑使用数字作为主键(我假设employee_name是两个表中的主键)。

这会加快您的查询速度(假设您在一个或两个表中有大量记录),因为您的DBMS将比较整数而不是字符串,这要快得多。