Mysql 交叉核对一个';s经理

Mysql 交叉核对一个';s经理,mysql,Mysql,我有一个表,有两列:employee\u email,manager\u email——这表明谁是特定员工的经理 我想避免这样的情况,在一排,A是B的经理;但在另一排,B是A的经理 我试着使用下面的方法,但似乎不正确 select * from chart c1, chart c2 where c1.employee_email = c2.manager_email and c1.manager_email = c2.employee_email 谢谢这是您需要的: select * --

我有一个表,有两列:
employee\u email
manager\u email
——这表明谁是特定员工的经理

我想避免这样的情况,在一排,A是B的经理;但在另一排,B是A的经理

我试着使用下面的方法,但似乎不正确

select *
from chart c1, chart c2
where c1.employee_email = c2.manager_email
and c1.manager_email = c2.employee_email
谢谢

这是您需要的:

select *  -- select columns here
from chart c1 left join chart c2
on c1.employee_email = c2.manager_email
and not exists (
    select 1 from chart c 
    where c.manager_email = c1.employee_email
    and c.employee_email = c2.manager_email
);
A是B的经理;但在另一排,B是A的经理,顺便说一句,这怎么可能?“似乎不对”。你应该能够验证它是否正确-无需猜测。如果不正确,则在给定一组样本数据的情况下,显示您的结果与您想要实现的结果。您的“避免”是什么意思?您希望您的查询返回任何这样的实例吗?您是否正在尝试设置一个约束来防止这种情况发生?