Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql查询在多个字段中显示相同的值_Mysql_Sql - Fatal编程技术网

mysql查询在多个字段中显示相同的值

mysql查询在多个字段中显示相同的值,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的这5个字段中查询出相同的empID,直到Emp_ID5。在每行的这些字段中搜索并计算相同的empID

------------------------------------------------------------
|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表