SQL查询返回的记录少于它应该返回的记录
我有一个疑问:SQL查询返回的记录少于它应该返回的记录,sql,sqlite,Sql,Sqlite,我有一个疑问: SELECT ea.Data_Source_ID FROM eloquaActual as ea WHERE ea.Data_Source_ID =(select eff.Data_Source_ID FROM eloquaFromFile eff WHERE eff.Permission_Bingo = ea.Permission_Bingo) 这将返回其数据\u源\u ID匹配但其权限\u Bingo不匹配的所有值。不幸的是,它只返回了2条记录。什么是不正确的。这意味着我
SELECT ea.Data_Source_ID
FROM eloquaActual as ea
WHERE ea.Data_Source_ID =(select eff.Data_Source_ID
FROM eloquaFromFile eff
WHERE eff.Permission_Bingo = ea.Permission_Bingo)
这将返回其数据\u源\u ID
匹配但其权限\u Bingo
不匹配的所有值。不幸的是,它只返回了2条记录。什么是不正确的。这意味着我的查询写错了,但有什么错呢
注意:我想一切都被认为是VARCHAR
。
还请注意,当我使用WHERE Permission\u Bingo=0
时,它没有返回任何内容,我必须将该零放在引号中:WHERE Permission\u Bingo=0'
,但对于相同类型的变量,它应该可以正常工作。更改
其中ea.Data\u Source\u ID=
到
其中ea.Data\u Source\u ID在中更改
其中ea.Data\u Source\u ID=
到
其中ea.Data\u Source\u ID在中,您应该使用
SELECT ea.Data_Source_ID
FROM eloquaActual as ea
WHERE exists (SELECT *
FROM eloquaFromFile eff
WHERE eff.Permission_Bingo = ea.Permission_Bingo and
ea.Data_Source_ID = eff.Data_Source_ID)
你应该使用
SELECT ea.Data_Source_ID
FROM eloquaActual as ea
WHERE exists (SELECT *
FROM eloquaFromFile eff
WHERE eff.Permission_Bingo = ea.Permission_Bingo and
ea.Data_Source_ID = eff.Data_Source_ID)
你能添加一个sqlfiddle链接吗?什么是sqlfiddle链接?比如你能添加一个sqlfiddle链接吗?什么是sqlfiddle链接?我怀疑这很重要,如果有多行,他已经收到一个错误了。他是对的,这不是答案,而是替换为in帮助了我很多,这就是为什么你得到我的+1。谢谢。我怀疑这有什么关系,如果有超过一行,他已经收到了一个错误。他是对的,这不是答案,但被替换为in帮助了我很多,这就是为什么你得到我的+1。谢谢。这个查询和作者写的一样,它们肯定有相同的执行计划。@Zaratutra这些查询是不同的;SQLite忽略标量子查询中多余的行。@CL。谢谢,我不知道SQLite中的这种隐式行为。这个查询和作者写的一样,它们肯定有相同的执行计划。@Zaratutra这些查询是不同的;SQLite忽略标量子查询中多余的行。@CL。谢谢,我不知道SQLite中的这种隐式行为。