0

次のコードがありました。

select DB.T1.ID,
DB.T1.B,
DB.T1.C,
DB.T2.ID,
DB.T2.B,
DB.T2.R,
DB.T3.ID,
DB.T3.Q
DB.T1.DUP,
DB.T2.DUP,
DB.T3.DUP
from DB.T1, DB.T2, DB.T3
where DB.T1.id = DB.T2.ID
and DB.T1.id = DB.T3.ID
and DB.T2.id = DB.T3.id
and DB.T1.DUP = 'not_duplicate'
and DB.T2.DUP = 'not_duplicate'
and DB.T3.DUP = 'not_duplicate'
;

ただし、出力は 0 行を返しました。そこで、各テーブルの "DUP" 列の値を duplicate/not_duplicate から 0/1 に変更しました。私はこのコードを試してみましたが、うまくいきました:

select DB.T1.ID,
DB.T1.B,
DB.T1.C,
DB.T2.ID,
DB.T2.B,
DB.T2.R,
DB.T3.ID,
DB.T3.Q
DB.T1.DUP,
DB.T2.DUP,
DB.T3.DUP
from DB.T1, DB.T2, DB.T3
where DB.T1.id = DB.T2.ID
and DB.T1.id = DB.T3.ID
and DB.T2.id = DB.T3.id
and DB.T1.DUP = 1
and DB.T2.DUP = 1
and DB.T3.DUP = 1
;

2 番目のコードは完全に機能し、最初のコードは 0 行を返しました。なぜこれが起こったのか誰か知っていますか?値「not_duplicate」と「duplicate」は、データベースにインポートした csv とまったく同じ文字列でした。なぜそうなるのか説明できず、とても興味があります。

どうもありがとう!

4

1 に答える 1

0

DUP列にnot_duplicateはフィールドにこれがないためです。1 の場合、クエリと一致しません。

クエリは、列 DUP に格納されている値を返します。

于 2013-02-14T22:26:39.407 に答える