SQLite使用UNION时意外去除重复行问题咨询
关于SQLite中UNION默认去重的问题解答
是的,不管你有没有使用ORDER BY或GROUP BY,UNION运算符默认都会自动去除结果集中的重复行——这是SQL标准规定的行为,SQLite完全遵循这个规则。
你遇到的情况正好对应这个机制:单独查询能返回两行完全一致的捐赠记录,但用UNION合并后,因为两行的所有列值都一模一样,就被合并成一行了。而当你加上a.guid这种唯一列之后,两行的guid值不同,整个记录就不再是完全重复的了,所以UNION不会去重,自然能返回两行。
如果你的需求就是要保留所有重复行,不用额外加唯一列,直接用UNION ALL就行——它会原样保留所有查询结果,不会做去重处理。
内容的提问来源于stack exchange,提问作者Neil Steiner
相关产品推荐
相关产品推荐

