Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
Java 基于一列中的多个条件获取记录_Java_Sql_Workflow_Activiti - Fatal编程技术网

Java 基于一列中的多个条件获取记录

Java 基于一列中的多个条件获取记录,java,sql,workflow,activiti,Java,Sql,Workflow,Activiti,我有一张“行动任务”表和一张“行动可变”表。每个任务都有许多变量,我想根据一些变量得到一组任务,例如: 行动任务 | ID | PROC_INST_ID_ | ----------------------------- | 20 | 35 | 及 变戏法 | ID | PROC_INST_ID_ | NAME_ | TEXT_ ---------------------------------------------- | 44

我有一张“行动任务”表和一张“行动可变”表。每个任务都有许多变量,我想根据一些变量得到一组任务,例如:

行动任务

| ID     |  PROC_INST_ID_  |
-----------------------------
|   20      | 35      |

变戏法

| ID     |  PROC_INST_ID_  |   NAME_  | TEXT_
----------------------------------------------
|   44      | 35      |      initiator | user1
|   45      | 35      |      team      |   team1
|   46      | 35      |      status    |  0
|   47      | 35      |    profile     |  null
现在,PROC_INST_ID_“35”的任务有许多变量 所以我想得到一个或多个基于变量条件的任务,比如

我想通过initiator=“user1”和team=“team1”获得任务

我写了这个查询,但没有得到任何结果

SELECT *
FROM ACT_RU_TASK JOIN
     ACT_RU_VARIABLE
     ON ACT_RU_TASK.PROC_INST_ID_ = ACT_RU_VARIABLE.PROC_INST_ID_
 WHERE (ACT_RU_VARIABLE.NAME_='initiator' AND ACT_RU_VARIABLE.TEXT_='user1') AND   (ACT_RU_VARIABLE.NAME_='team' AND ACT_RU_VARIABLE.TEXT_='team1')

注意:我正在使用Java中的Activity Framework,我想创建本机任务查询。

我想您需要聚合和
具有用于筛选的

SELECT v.PROC_INST_ID_
FROMACT_RU_VARIABLE v
WHERE (v.NAME_ = 'initiator' AND v.TEXT_ = 'user1') OR   
      (v.NAME_ = 'team' AND v.TEXT_ = 'team1')
GROUP BY v.PROC_INST_ID_
HAVING COUNT(*) = 2;   -- both attributes match

这将检查两个属性是否匹配。您可以从其他表中加入其他信息。但是要获得
PROC\u INST\u ID\u
你不需要
ACT\u RU\u任务

,但是你能解释一下为什么使用“或”?@amer\u Salah。因为条件必须在不同的行上匹配。对于
,没有行可能匹配。为什么使用count=2?如果我在where子句中添加新条件,我应该将计数增加到3@amer_Salah . . . 对如果你有更多的条件,你会添加需要匹配的数字。但是如果我加入了ACT_RU_________________________________??