次のコードがありました。
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 とまったく同じ文字列でした。なぜそうなるのか説明できず、とても興味があります。
どうもありがとう!