1

我有一个非常基本的表,其中包含工人姓名和经理姓名:

CREATE TABLE Work (
Worker_name varchar(50) NOT NULL 
Manager_name varchar(50) NOT NULL;

该表允许一个工人成为他自己的经理,一个经理负责多个工人等。

我应该编写一个查询,显示每个管理至少 2 名不同员工的经理,但我不能使用聚合命令或 GROUP BY。

如果有人能给我一个提示,那就太好了。我喜欢弄清楚事情,但这真的让我很难过。

谢谢,安德鲁

4

2 回答 2

1

这个查询有点乏味,但它应该做你需要做的事情,或者至少让你走上正确的轨道:)

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
于 2012-09-28T06:11:53.390 回答
0

你可以试试下面的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);

于 2012-09-28T06:31:38.037 回答