Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Sqlite 为什么两个oposit查询返回相同的数据?_Sqlite - Fatal编程技术网

Sqlite 为什么两个oposit查询返回相同的数据?

Sqlite 为什么两个oposit查询返回相同的数据?,sqlite,Sqlite,这些问题: SELECT * FROM eloquaActual as ea WHERE exists (SELECT * FROM eloquaActual as eff WHERE (eff.Email_Address != ea.Email_Address)) 及 返回完全相同的数据。还请注意,当我将数据导入sqlite时,电子邮件地址列是唯一的,它向我显示了错误。我尝试导入的不是唯一的电子邮件。然后,我试图在电子邮件栏中找到任何重复的内容。当我执行上述查询时,它返回了所有数据。这意

这些问题:

SELECT * FROM eloquaActual as ea 
WHERE exists (SELECT * FROM eloquaActual as eff 
WHERE (eff.Email_Address != ea.Email_Address))

返回完全相同的数据。还请注意,当我将数据导入sqlite时,电子邮件地址列是唯一的,它向我显示了错误。我尝试导入的不是唯一的电子邮件。然后,我试图在电子邮件栏中找到任何重复的内容。当我执行上述查询时,它返回了所有数据。这意味着所有的行都是重复的

但后来我选择了email address=any email,只找到了一条记录。。。wtf

表结构:

CREATE TABLE "eloquaActual" ("Email_Address" VARCHAR, "Prizes_Oddset_7" VARCHAR)
之前我有
电子邮件地址
唯一,但发生了错误

exists (SELECT * FROM eloquaActual as eff 
        WHERE (eff.Email_Address != ea.Email_Address))
这将检查
ea
中是否存在与当前行电子邮件不同的电子邮件。 如果表中至少包含两封电子邮件,则会发生这种情况

exists (SELECT * FROM eloquaActual as eff 
        WHERE (eff.Email_Address = ea.Email_Address))
这将检查是否存在与当前行的电子邮件相同的电子邮件。 这将始终发生,因为行将匹配自身


要查找重复项,可以检查具有相同电子邮件但ID不同的行:

使用分组方式会更容易:

SELECT Email_Address,
       COUNT(*)
FROM eloquaActual
GROUP BY Email_Address
HAVING COUNT(*) >= 2

向我们显示您表的结构和内容。表中有多少行,以及您有多少不同的电子邮件地址?如果你在这两个问题上都回答“至少2”就足够了,我不需要实际的数字。所有的电子邮件地址都应该是不同的、唯一的,并且有580000+行-这很有意义,谢谢,但是如果我没有任何ID怎么办?有一件事应该是独一无二的,那就是电子邮件,它显然不是,我必须找出其中哪些不是独一无二的。
SELECT *
FROM eloquaActual AS ea
WHERE EXISTS (SELECT *
              FROM eloquaActual AS eff
              WHERE eff.Email_Address = ea.Email_Address
                AND eff.rowid != ea.rowid)
SELECT Email_Address,
       COUNT(*)
FROM eloquaActual
GROUP BY Email_Address
HAVING COUNT(*) >= 2