全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1601|回复: 10

问一个SQL 多表查询总出现重复数据问题

[复制链接]
发表于 2018-7-25 08:42:16 | 显示全部楼层 |阅读模式
本帖最后由 王百万 于 2018-7-25 09:24 编辑
  1. 1. select a.* from `话单201806` a,`4位区号表` b WHERE a.`号码` = '13304333333';
复制代码
  1. 2. select a.* from `话单201806` a WHERE a.`号码` = '13304333333';
复制代码


话单201806就是储存的无重复的记录

4位区号表(328条数据)

第一条SQL会查询到        5248条记录
第二条SQL会查询到        16条记录

也就是 乘了 区号表数量的倍数

发表于 2018-7-25 08:59:34 | 显示全部楼层
本帖最后由 administratorA 于 2018-7-25 09:00 编辑
王百万 发表于 2018-7-25 08:56
NONO,要是显示(16+328)条 我还没啥说的,关键他是(16x328)条了,这是什么鬼。。。。 ...


因为第一张表的每条记录都会去匹配一次B表记录   这样一来就是A表记录数 x B表记录数了; 你根本就没只有指定A表的记录应该匹配B表的那些记录,所有就当全部匹配查询了
发表于 2018-7-25 08:48:25 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2018-7-25 08:49:59 | 显示全部楼层
姿势不对吧。。SELECT A.* B.* FROM XXX A JOIN XXX B ON A.NO=B.NO正确的多表姿势。。
 楼主| 发表于 2018-7-25 08:50:06 | 显示全部楼层
liutianshu77 发表于 2018-7-25 08:48
第一个SQL有问题,a和b没做join

第一个明显没有"联合查询" 也要做连接吗? 这是什么原因。。。?
发表于 2018-7-25 08:54:22 | 显示全部楼层
本帖最后由 administratorA 于 2018-7-25 08:58 编辑

既然两张表没有关联为什么要这样查询
 楼主| 发表于 2018-7-25 08:55:21 | 显示全部楼层
liutianshu77 发表于 2018-7-25 08:48
第一个SQL有问题,a和b没做join

select a.* from `话单201806` a INNER JOIN `4位区号表` b on a.`号码` = '13304333333';

这样查询还是5K条啊,我都没有'b' 为啥会扰乱我的数据
 楼主| 发表于 2018-7-25 08:56:44 | 显示全部楼层
administratorA 发表于 2018-7-25 08:54
一张表有10条记录,另一张有20条 那么就会全部显示出来的

NONO,要是显示(16+328)条 我还没啥说的,关键他是(16x328)条了,这是什么鬼。。。。
发表于 2018-7-25 08:57:02 | 显示全部楼层
必须关联A和B表啊。。ON A.XXX=B.XXX AND A。号码='133000000000'正确姿势是
发表于 2018-7-25 08:59:35 来自手机 | 显示全部楼层
哈哈哈哈哈哈哈哈哈哈哈哈哈

评分

参与人数 1威望 -3 收起 理由
我是人 -3 会员举报,无意义回复。

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-3-31 05:01 , Processed in 0.075387 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表