mysql查询在多个字段中显示相同的值
我不知道如何在Emp_ID1的这5个字段中查询出相同的empID,直到Emp_ID5。在每行的这些字段中搜索并计算相同的empIDmysql查询在多个字段中显示相同的值,mysql,sql,Mysql,Sql,我不知道如何在Emp_ID1的这5个字段中查询出相同的empID,直到Emp_ID5。在每行的这些字段中搜索并计算相同的empID ------------------------------------------------------------ |Emp_ID1 | Emp_ID2 | Emp_ID3 | Emp_ID4 | Emp_ID5 | DATE ------------------------------------------------------------- | P
------------------------------------------------------------
|Emp_ID1 | Emp_ID2 | Emp_ID3 | Emp_ID4 | Emp_ID5 | DATE
-------------------------------------------------------------
| P1 | P2 | P3 | P4 | P5 | 2018-07-02
-------------------------------------------------------------
| P4 | P3 | P1 | P8 | P9 | 2018-07-03
-------------------------------------------------------------
| P5 | P6 | P4 | P2 | P1 | 2018-07-04
-------------------------------------------------------------
| P2 | P3 | P7 | P8 | P3 | 2018-07-04
-------------------------------------------------------------
| P5 | P9 | P3 | P6 | P1 | 2018-07-05
-------------------------------------------------------------
| P5 | P9 | P3 | | | 2018-07-06
-------------------------------------------------------------
日期介于2018-07-02和2018-07-04之间
P1=3
P2=3
P3=4
P4=3
P5=2
P6=1
P7=1
P8=2
P9=1
您可以使用union合并来自不同字段的数据,然后使用聚合来获取每个员工id的计数
select t.Emp_ID, count(*)
from(
select Emp_ID1 Emp_ID from your_table
union all
select Emp_ID2 Emp_ID from your_table
union all
select Emp_ID3 Emp_ID from your_table
union all
select Emp_ID4 Emp_ID from your_table
union all
select Emp_ID5 Emp_ID from your_table
) t
where t.Emp_ID is not null
group by t.Emp_ID
您可以使用UNION ALL然后GROUP BY取消打印表。不过你应该考虑让你的桌子正常化,由于表结构使得查询表非常困难。这是什么类型的查询?从表中选择Emp_ID1 Emp_ID exmplain Emp_ID属性为什么可以there@user7367328Emp_ID只是不同列到列的别名公共名称,并使用关键字select Emp_ID1作为Emp_ID表示,我试图设置条件和添加了名为datetime的新属性。“Date1”和“Date2”之间的datetime不能显示准确结果的额外条件。我将这些datetime条件放在FROM@user7367328自行运行内部查询。结果是您的表应该是如何开始的。我在当前表中添加了日期,我的查询看起来像是select t.Emp\u ID,count*from select Emp\u ID1 Emp\u ID from您的创建\u date的\u表