SQLite使用inner join查询会查询出重复数据

图片说明

            两个表  A表有两万七千多数据  B表有四万六千多数据,用inner join 查询为什么会查询出七万多条数据?  用left join 查询会查询出九万多条数据?为什么

4个回答

inner join 和left join 要了解下,用inner join 如果 A表ddbh字段的数据不唯一,你用A inner join B on A.ddbh=B.ddbh 会根据A表为主表,这样A表有重复的数据肯定最终查询的会重复,根据业务用inner join或者left join,要么过滤

ddbh字段是唯一值吗?不是唯一值出现重复很正常

sjk2lq
sjk2lq 回复qq_28004989: select a.ddbh,b.ddbh from b left join a on b.ddbh = a.ddbh
大约一年之前 回复
qq_28004989
金羽痕 A表不是唯一值,B表是唯一值,这种怎么匹配?
大约一年之前 回复

首先确保俩表的ddbh字段的唯一性

wlq199101
wlq199101 LEFT JOIN 改成 INNER JOIN
大约一年之前 回复
wlq199101
wlq199101 SELECT a.ddbh ,b.ddbh FROM a LEFT JOIN (SELECT ddbh FROM b GROUP BY ddbh )AS b ON b.ddbh = a.ddbh
大约一年之前 回复

笛卡尔积了。
查询时确定两个表的唯一字段,
如字段不唯一,需要做去重处理

Data_learning
Conpgo1 首先就是 两张关联表的关联字段 要保证数值唯一,或者取最新状态,或者某一字段最大值?
大约一年之前 回复
qq_28004989
金羽痕 A表不是唯一值,B表是唯一值,这种怎么做去重处理?
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!