我有下一個表 - Task(id, type, sessionId, termination, scenario)
我有一個列表sessionId
。選擇組中的所有元素
我想選擇所有這些會話中常見的任務。如果任務具有相同的類型,終止和場景,則它們是平等的。
實施例 -
| id | type | sessionId | termination | scenario |
1 A 20 duration sc1
2 B 20 invocation sc1
3 C 20 duration sc2
4 A 21 duration sc1
5 B 21 invocation sc1
sessionId
對於列表等於(20,21) - I想獲取下一個信息
| id | type | sessionId | termination | scenario |
1 A 20 duration sc1
2 B 20 invocation sc1
4 A 21 duration sc1
5 B 21 invocation sc1
任務與IDS = 1,2,4,5是常見對於會議20和21
我設計一個查詢 -
select l.* from Task l
inner join(select p.* from Task p
where
p.sessionId in (20,21)
group by
p.type,
p.termination,
p.scenario
having
count(p.id)=2)s
on
l.type=s.type
and l.scenario=s.scenario
and l.termination=s.termination;
這是獲取此類信息的最佳方式嗎?也許有更好的查詢,其中只包含一個select
操作並且工作更快?
這是一個很好的決定!但有沒有辦法不使用2「選擇」操作? –