查询跨列共享相同值的行

时间:2015-03-06 01:53:41

标签: mysql

我有一张桌子:

  • 员工AliasManagerAuditorActivator

Alias是唯一的。

场景:员工需要重新激活他/她的帐户。要做到这一点,他们必须经过验证过程。

然后,该表将在请求任何人的每个列(经理,审计员,激活器)中放置一个别名号。按规则,员工不能使用自己的帐户来激活自己的帐户。

如何编写查询以列出显示在经理和审核员,或经理和激活者下显示其别名的员工的所有行和列? (换句话说,他们违反规则并验证自己)

2 个答案:

答案 0 :(得分:1)

来自你的陈述

  

别名出现在经理和审计员,或经理和激活者

之下
SELECT alias, manager, auditor, activator
FROM Employees
WHERE (manager = alias AND auditor = alias) OR (manager = alias AND activator = alias)

答案 1 :(得分:0)

您要查找的规则是否需要将别名与经理,审核员和激活者值区别开来?

如果是这样,您可以尝试这样的查询吗?

SELECT alias, manager, auditor, activator
FROM employees
WHERE alias = manager
OR alias = auditor
OR alias = activator;