8
2つのクエリを実行して、奇妙な結果が得られます。私はなぜこれが起こっているのか知りたいです。
は今照会:矛盾したOracleクエリの結果
SELECT * FROM TABLE_A a, TABLE_B b, TABLE_C c
WHERE a.a = b.a (+)
AND b.c = c.c
AND a.a = 123;
結果は空です。
SELECT COUNT(*) FROM TABLE_A a, TABLE_B b, TABLE_C c
WHERE a.a = b.a (+)
AND b.c = c.c
AND a.a = 123;
結果は、それが本当に違う返される値と同じクエリで1
です。
表Aは、aの化合物。表= B.A.ような行が含まれていない「」フィールド= 123
表B持つ行が含まれてい
方法は何か1は、同じクエリに対して返されないことができますか?
更新:
私はそれそれはOK作品
SELECT COUNT(*) FROM TABLE_A a, TABLE_B b, TABLE_C c
WHERE a.a = b.a (+)
AND b.c = c.c (+)
AND a.a = 123;
このようにします。
改革は、ANSI-92構文( 'LEFT JOIN'、など)を使用して、そしてあなたのクエリが、それを試してみてください。それは20歳です、私はそれが寝る時間があったと思う! – MatBailie
'TABLE_C'はどうですか?それには何がありますか? – gdoron
@Dems。ちょっと、たまに1回以上+1することができたらいいのに... –