2 dodard dodard 于 2016.09.18 14:14 提问

关于left join连接查询重复数据的问题,求助

我要查询4个表,需要用到连接查询,但是有重复数据,4个表信息分别如下
需求表
图片说明

子项目表
图片说明

sql类型表(sqltype 1为select,2为insert)
图片说明

具体sql
图片说明

我想要一个包括 projectCode,projectName.pointName,sourceSql,destSql的结果集
图片说明
但是重复了,我只想要红框里面的4条的

单独查selectsql 和insert语句是没重复的
查询select语句
图片说明
查询insert语句
图片说明
但是一连在一起就出来16条了 。。。怎么破,各位老哥老司机求助

1个回答

xyzhanhh
xyzhanhh   2016.09.18 14:42

你可以在查询出的字段 sourceSql 的sql语句前加 distinct(去重复) 关键字,例如:select pm.point_id pointId,pm.sql_type, distinct d.sql sourceSql.......

dodard
dodard 试了下,没用啊 ,这个不是真正的数据重复。。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mysql使用left join连接出现重复记录
问题描述 在使用连接查询的时候,例如以A表为主表,左连接B表,我们期望的是A表有多少条记录,查询结果就有多少条记录,但是可能会出现这样的结果,就是查询出来的记录总条数,多余A表的记录总条数,并且是查询的结果显示出来时有部分列是重复的,简单的说,就是产生了笛卡尔积。 问题示例 其中A表是用户表(user),字段分别是: ID name userid 1 aaaa ...
left join出现重复数据解决方法
三表链接查询发现返回的结果成倍的返回,感到异常的郁闷,用的是left join,之前有大佬告诉我,left join的效率会比其他的连接方法效率要高些,所以也一直用这个。捡重点说,总之引发查询出重复数据就是因为,表之间关联的关系不是一对一的,可能是一对多的所以会把那张多的表数据也就查询出来,导致数据重复。解决方法:group by 字段1...
mysql左连接去重
表如下 create table TB_BATCH(    ID                   int(11) not null auto_increment,    BATCH_NO              VARCHAR(32) comment '批次号',    CONTRACT_ID          int(11) comment '合同ID',    CONTRACT
Mysql 解决left join 数据重复的问题
http://www.cnblogs.com/jackluo/p/3475498.html select p.*,g.roleName,pg.srcType from t_gold_pay_add p left join gRole g on p.roleID=g.roleID left join gPay pg on pg.roleID=p.roleID 这上面那边语
mysql多表关联查询left join 去掉结果集重复列。已解决。
先是百度到这个答案:http://blog.sina.com.cn/s/blog_6ab0cbbe0102v53q.html 第一次没看懂。太长,还有个不认识的using关键字。 原本已经已放弃。 ===打算试试: 使用 最笨的方法:table1.字段名1,table1.字段名2...table2.字段名1,table1.字段名2... ===这个方法还是和同学讨论后才有的“灵感”呢
left join 右表多条数据重复
mysql的left join从两个表中联合查询数据,以左表为主,右表为辅。如果左表中有的内容右表中没有,则用null填充。这是一般的常见的解释。也很容易理解。但是在做右表的多数据查询的时候就得写条件了。 我写一个产品-产品图片的分页过程中需要查出一个图片即可。但是在用mysql的left join中,左表为product,键为pid。右表为image主键为imageid,外键为pid。
oracle left join 分页数据重复问题
问题描述:使用 Oracle 的多分页查询语句,不同页面之间出现数据重复,但是数据库的数据是正确的,查询全部的时候也能显示出来。 sql实例:SELECT * FROM(SELECT ROWNUM RN,TA.* FROM(SELECT A.*,B.* FROM TALBE_A A LEFT JOIN TABLE_B B ON A.ID= B.A_ID WHERE A.NAME='King'
数据库中 join 链接过滤重复的记录
sql 滤重复记录
oracle join连接方法以及left join中on 和where的区别
1.join连接方法分类: (1)自连接:inner join,join (只返回两张表连接列的匹配项,没有空值代替这一说) 以下三种查询结果一样: select * from mz_cfzb a inner join mz_cfmxb on a.id=b.zb_id; select * from mz_cfzb a inner join mz_cfmxb on a.id=b.zb_id;
left join查询可能出现重复数据 (主表中一条变两条)
创建两个表 执行下列查询语句 SELECT * from person a LEFT JOIN people b on a.action_id = b.action_id 显然 person表中的数据出现了两次 ,left join 以主表为主 ,我们在今后的开发要注意类似的问题 执行下面的语句也是同样的效果 SELECT * from person