IDに基づいて行のペアワイズの組み合わせを生成しようとしています。SQLiteのバージョンは3.5.9です。テーブルの内容は次のとおりです。
id|name|val
1|A|20
2|B|21
3|C|22
テーブルスキーマは次のとおりです。
CREATE TABLE mytable (
id INTEGER NOT NULL,
name VARCHAR,
val INTEGER,
PRIMARY KEY (id)
);
次に、IDに自己結合があります。
sqlite> select t1.id, t2.id from mytable as t1, mytable as t2 where t2.id > t1.id;
id|id
2|2
2|3
3|3
これは明らかに私が望んでいることではありません。ここで、t2とt1の順序を変更すると、正しい結果が得られます。
sqlite> select t1.id, t2.id from mytable as t2, mytable as t1 where t2.id > t1.id;
id|id
1|2
1|3
2|3
ここで、別の実験として、行ID以外の数値列を組み合わせてみました。一方、どちらの場合も正しい結果が得られます。
私は誰かがここで何が起こっているのかについて洞察を与えることができることを望んでいます。私が理解している限り、それはSQLiteのバグか、SQLの微妙な側面のどちらかです。
ありがとう、