我有一个非常基本的表,其中包含工人姓名和经理姓名:
CREATE TABLE Work (
Worker_name varchar(50) NOT NULL
Manager_name varchar(50) NOT NULL;
该表允许一个工人成为他自己的经理,一个经理负责多个工人等。
我应该编写一个查询,显示每个管理至少 2 名不同员工的经理,但我不能使用聚合命令或 GROUP BY。
如果有人能给我一个提示,那就太好了。我喜欢弄清楚事情,但这真的让我很难过。
谢谢,安德鲁
我有一个非常基本的表,其中包含工人姓名和经理姓名:
CREATE TABLE Work (
Worker_name varchar(50) NOT NULL
Manager_name varchar(50) NOT NULL;
该表允许一个工人成为他自己的经理,一个经理负责多个工人等。
我应该编写一个查询,显示每个管理至少 2 名不同员工的经理,但我不能使用聚合命令或 GROUP BY。
如果有人能给我一个提示,那就太好了。我喜欢弄清楚事情,但这真的让我很难过。
谢谢,安德鲁
这个查询有点乏味,但它应该做你需要做的事情,或者至少让你走上正确的轨道:)
SELECT w1.* FROM Work w1
INNER JOIN Work w2 ON w2.Manager_name = w1.Manager_name AND w2.Worker_name != w1.Worker_name
INNER JOIN Work w3 ON w3.Manager_name = w1.Manager_name AND w3.Worker_name != w2.Worker_name
WHERE w1.Manager_name = w1.Worker_name
你可以试试下面的sql,它在mysql中运行良好,希望有所帮助
SELECT distinct Manager_name from Work a where a.Manager_name in (select distinct Manager_name from Work b where a.Worker_name != b.Worker_name);