如何从下表中找到在超过 2 家公司工作的员工的姓名:
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
这将创建一个列表,每个员工代表一次,然后过滤掉员工,以便只显示那些为该组做出贡献的记录超过两条的员工。
除了之前提供的答案(顺便说一句是正确的),如果您需要加入表,请考虑使用数字作为主键(我假设employee_name 是两个表中的主键)。
这将加快您的查询速度(假设您在一个或两个表中有很多记录),因为您的 DBMS 将比较整数而不是字符串,这要快得多。