MySQL奇数加入问题

时间:2013-02-14 22:22:25

标签: mysql

以下代码:

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完全相同的字符串。我无法解释为什么会这样,我真的很好奇。

非常感谢!

1 个答案:

答案 0 :(得分:0)

因为DUP列在字段中没有此not_duplicate。他们有1 那么它与你的查询不符。

查询返回存储在DUP列中的值。