我有以下代码:
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
;
第二个代码完美运行,第一个代码返回0行。有谁知道为什么会这样?值“not_duplicate”和“duplicate”是与我从中导入数据库的csv完全相同的字符串。我无法解释为什么会这样,我真的很好奇。
非常感谢!
答案 0 :(得分:0)
因为DUP列在字段中没有此not_duplicate
。他们有1
那么它与你的查询不符。
查询返回存储在DUP列中的值。