问题描述
select count(category_value .list_value_id) as jobs,category_type.value as category
from list_values category_type
full outer join params category_value
on category_type.list_value_id = category_value .list_value_id
join qrtz_triggers jobs
on category_value .object_id = jobs.job_name
and jobs.trigger_state ='PAUSED'
and category_value.attr_id = 9158075153713931109
where category_type.attr_type_def_id = 9158075154713931109
group by category_type.value;
attr_id是包含9158075158713931109(非关键)和9158075157713931109(关键)的列表值
returns result:
JOBS,CATEGORY
2 Non-Critical
expected result is :
JOBS,CATEGORY
2 Non-Critical
0 Critical
list_values table conains
list_value_id values
9158075158713931109 non-critical
9158075157713931109 critical
params table
list_value_id attr_id object_id
9158075158713931109 9158075153713931109 a
9158075157713931109 9158075153713931109 b
9158075157713931109 9158075153713931109 c
9158075158713931109 9158075153713931109 d
qtz_trigger table i need triggers with state "paused"
job_name trigger_state
b paused
a paused
e normal
c paused
我什至尝试输入category_value .object_id(从qrtz_triggers作业中选择jobs.job_name,其中jobs.trigger_type ='SIMPLE'),但得到的错误命令未正确结束
解决方法
此过滤条件:
where category_type.attr_type_def_id = 9158075154713931109
将把full join
变成左联接或右联接。
使用full join
进行过滤非常棘手。我不确定是否需要full join
-您的问题并不能说明您真正要做什么。但是,如果您确实需要full join
,我会发现子查询中的过滤通常可以满足我的要求。
我认为您实际上想要 public async GetContent(url: string) {
const response = await super.get<IContentData>(url,{});
response?.parsedBody && this.ProcessResponse(response.parsedBody);
}
private ProcessResponse(ContentData: IContentData) {
}
,从left join
表开始,然后再桥接list_values
和params
:
qrtz_triggers
原始查询的条件有点混乱,因此我尝试重新安排-您可能需要检查一下。我还使用了简短的代表表别名。