Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 奇数加入问题_Mysql - Fatal编程技术网

Mysql 奇数加入问题

Mysql 奇数加入问题,mysql,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

我有以下代码:

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


非常感谢

因为DUP列在字段中没有此
非重复项。他们有1个
那么它与您的查询不匹配


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

该列的数据类型是什么?它是VARCHAR(255)。“DUP”列是每个表的每行中的最后一列,如果这有什么区别的话……varchar,但是您在其中存储了什么?1或不重复?如果让人困惑,很抱歉。最初我存储“复制”和“不重复”,但因为上面的加入脚本没有生成我想要的内容,所以我将其更改为存储“1”或“0”。这有意义吗?我不知道“\u”是否会把MySQL搞砸,所以我尝试了“1”和“0”(都是varchar(255))。我不太明白的是,当我将单元格的值更改为“1”时,为什么它会注册“1”,但它似乎没有注册“not\u replicate”。我不知道MySQL是否有一种特殊的方式来处理一行中最后一列的值,在末尾添加一个随机字节或其他可以识别“1”但不能识别“not_duplicate”的内容……如果使用数字,请尝试将其改为INT而不是varchart。上面的第二个代码示例非常有效。“1”是varchar这一事实不是问题所在。这就是奇怪的地方。我能看到的唯一区别是,在第一种情况下,“DUPLICATE”列中的值是“DUPLICATE”或“not_DUPLICATE”。在第二种情况下,对于相同的确切数据类型,值是“1”或“0”。在第一种情况下,代码不起作用。在第二种情况下,它做到了。有些东西不符合我的意思…如果你把你的代码放在保存这个值和数据库的地方,也许我们可以看到你的错误在哪里。这应该适用于不复杂的单词