0

首先,让我从我正在使用的表格开始。它们看起来像这样:

Table - Transaction
===================
trans_id
name

Table - Checkpoint
==================
trans_id
checkpoint_id
checkpoint_data

一个事务可以有多个检查点,一个检查点只能有一个事务。

我无法形成一个 SQL 语句,该语句将选择某个名称的所有事务,该名称在其任何关联的检查点trans_id中不包含某些字符串。checkpoint_data

这个 SQL 语句会是什么样子?我正在使用 Oracle,但任何 SQL 都应该为我指明正确的方向

4

2 回答 2

1
select trans_id
from transactions t
left outer join checkpoint c on c.trans_id = t.trans_id
where t.name = 'transaction name'
group by t.trans_id
having sum(case when contains(checkpoint_data, 'some string') > 0 
                then 1 
                else 0 
           end) = 0
于 2013-02-12T18:47:11.040 回答
0
Select distinct(ch.trans_id) from checkpoint ch join transaction t on ch.trans_id=t.trans_id and t.name like '%test%'  and ch.chech_point not like '%exclude%'
于 2013-02-12T18:52:03.713 回答