如何编写只返回重复值的MySQL查询,不使用聚合函数?

时间:2012-09-28 06:08:20

标签: mysql restriction

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

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

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

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

如果有人能给我一个很棒的提示。我喜欢搞清楚事情,但这确实让我难过。

谢谢, 安德鲁

2 个答案:

答案 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);