根据一列中的多个条件获取记录
Get Records based on many Conditions in One Column
我有一个 "ACT_RU_TASK"-table 和一个 "ACT_RU_VARABILES"-table。每个任务都有很多变量,我想根据一些变量获得一组任务,例如:
ACT_RU_TASK
| ID | PROC_INST_ID_ |
-----------------------------
| 20 | 35 |
和
ACT_RU_VARABILES
| 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”的任务有很多变量
所以我想根据
之类的变量条件获取一个或多个任务
我想要发起人 = "user1" 和团队 = "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 框架,我想创建本机任务查询。
我想你想要聚合和 having
过滤:
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_INST_ID_
你不需要 ACT_RU_TASK
.
我有一个 "ACT_RU_TASK"-table 和一个 "ACT_RU_VARABILES"-table。每个任务都有很多变量,我想根据一些变量获得一组任务,例如:
ACT_RU_TASK
| ID | PROC_INST_ID_ |
-----------------------------
| 20 | 35 |
和
ACT_RU_VARABILES
| 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”的任务有很多变量 所以我想根据
之类的变量条件获取一个或多个任务我想要发起人 = "user1" 和团队 = "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 框架,我想创建本机任务查询。
我想你想要聚合和 having
过滤:
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_INST_ID_
你不需要 ACT_RU_TASK
.