我有一个非常基本的表,包含工作者姓名和经理姓名:
CREATE TABLE Work (
Worker_name varchar(50) NOT NULL
Manager_name varchar(50) NOT NULL;
此表允许工人成为他自己的经理,负责多个工人的经理等。
我应该编写一个查询,显示管理至少2名不同员工的每位经理,但我不能使用聚合命令或GROUP BY。
如果有人能给我一个很棒的提示。我喜欢搞清楚事情,但这确实让我难过。
谢谢, 安德鲁
答案 0 :(得分: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
答案 1 :(得分:0)
你可以尝试下面的sql,它在mysql中运行良好,希望有所帮助
从工作a中选择不同的Manager_name a.Manager_name in (从工作b中选择Manager_name,其中a.Worker_name!= b.Worker_name);