0

まず、私が使用しているテーブルから始めましょう。それらは次のようになります。

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

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

トランザクションは複数のチェックポイントを持つことができ、チェックポイントは 1 つのトランザクションしか持つことができません。

関連するチェックポイントにtrans_id文字列を含まない名前のすべてのトランザクションを選択する SQL ステートメントを作成するのに問題があります。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 に答える