2017-02-22 12 views
-1

SQLiteではレコードのコレクションがあり、特定の違いを持つレコードのみを表示したいと考えています。私は2つの異なるfileIDsを選択し、それらを比較することができるようにしたい file | idx | values ------|-------|---------------------- 1 | 101 | 1,3,7,11,23,11 2 | 101 | 1,3,7,11,23,11 3 | 101 | 0,4,8,60,20,11 1 | 211 | 12,11,23 2 | 211 | 12,0,23 3 | 211 | 12,0,23 1 | 300 | 1 2 | 300 | 0 3 | 300 | 0 行間のsqliteの差

テーブルには、次の値のようなものがあります。 私は意味、私は戻って、結果として取得するカント何(file = 1 AND file = 2)

とレコードだけを調べたいが同じではないレコードの集まりです:
file | idx | values ------|-------|---------------------- 1 | 211 | 12,11,23 2 | 211 | 12,0,23 1 | 300 | 1 2 | 300 | 0

答えて

0

だからあなたがしたくありません同じidxvalues値を持つ別の行が存在する行:

SELECT * 
FROM MyTable 
WHERE file IN (1, 2) 
    AND NOT EXISTS (SELECT * 
        FROM MyTable AS T2 
        WHERE file IN (1, 2) 
        AND file <> MyTable.file 
        AND idx = MyTable.idx 
        AND values = MyTable.values); 
0

は、私はちょうど別のフォーラムでの回答を受け取りました。これが動作しているようです。もちろん

select * from thetable a, thetable b where a.file <> b.file and a.idx = b.idx and a.values <> b.values and a.file in (1, 2) and b.file in (1, 2);

私は準備されたステートメントで変数として特定の値を変更します。しかし、それはトリックをした