MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 4507|回复: 7
打印 上一主题 下一主题

请教大家关于查询重复记录的问题,请大神进来,比较难,两表联合查询。

[复制链接]
跳转到指定楼层
1#
发表于 2012-4-18 05:33:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yylovelei 于 2012-4-18 05:35 编辑

a表与b表字段都是相同的,字段为:
险种,车牌,发动机号,车大架号
现在想实现的是:
只要a表的险种与b表的险种相同,并且a表的车牌,发动机号,车大架号与b表的车牌,发动机号,车大架号只要3个中的一个相同,则显示出来相同的记录。
a表创建及记录:

DROP TABLE IF EXISTS `a`;
CREATE TABLE `a` (
  `xianzhong` varchar(30) DEFAULT NULL,
  `chepai` varchar(20) DEFAULT NULL,
  `fadongji` varchar(30) DEFAULT NULL,
  `chejiahao` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
INSERT INTO `a` VALUES ('DAA','吉B3120挂','无','');
INSERT INTO `a` VALUES ('DZA','吉B3120挂','无','');
INSERT INTO `a` VALUES ('DAA','暂未上牌','ABCD','无');
INSERT INTO `a` VALUES ('DAA','吉B3146挂','无','');
INSERT INTO `a` VALUES ('DZA','吉B3146挂','无','');

b表创建及记录:
DROP TABLE IF EXISTS `b`;
CREATE TABLE `b` (
  `xianzhong` varchar(30) DEFAULT NULL,
  `chepai` varchar(20) DEFAULT NULL,
  `fadongji` varchar(30) DEFAULT NULL,
  `chejiahao` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
INSERT INTO `b` VALUES ('DAA','吉B3120挂','无','LH9B3G40090HHT174');
INSERT INTO `b` VALUES ('DZA','吉B3120挂','无','LH9B3G40090HHT174');
INSERT INTO `b` VALUES ('DAA','吉B12345','','1345');
INSERT INTO `b` VALUES ('DAA','吉B3146挂','无','LH9B3G40990HHT173');
INSERT INTO `b` VALUES ('DZA','吉B3146挂','无','LH9B3G40990HHT173');

a表及b表及想要的结果图片如下,请大家帮帮忙,实在想不到该怎么查询了,先谢谢大家了。

a.jpg (16.27 KB, 下载次数: 23)

a表

a表

b.jpg (21.66 KB, 下载次数: 30)

b表

b表

jieguo.jpg (22.75 KB, 下载次数: 27)

查询结果

查询结果

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享淘帖1 顶 踩1
2#
 楼主| 发表于 2012-4-18 10:12:51 | 只看该作者
没人来吗?
3#
 楼主| 发表于 2012-4-18 12:26:53 | 只看该作者
刚才在百度有个高手给了我这句

select b.* from a left join b on a.xianzhong=b.xianzhong where ( (a.chepai=b.chepai) + (a.fadongji=b.fadongji) + (a.chejiahao=b.chejiahao) )>1

点评

解决就好,关注。  发表于 2012-4-18 16:39
4#
 楼主| 发表于 2012-4-19 16:55:17 | 只看该作者
还是不对啊 没有解决
5#
发表于 2012-4-20 11:20:39 | 只看该作者
觉得你的需求没有说清楚啊,你上面的是两个相同的显示b的,而你要一个相同的,而且显示的是相同的部分,那么是显示A的还是B的。另外两个肯定是不同的,是不是是无的就不显示,显示存在的值?
6#
 楼主| 发表于 2012-5-3 23:10:58 | 只看该作者
http://www.oschina.net/question/272636_49426
7#
发表于 2012-5-4 03:51:35 | 只看该作者
觉得你的需求没有说清楚啊,你上面的是两个相同的显示b的,而你要一个相同的,而且显示的是相同的部分,那么是显示A的还是B的。另外两个肯定是不同的,是不是是无的就不显示,显示存在的值?
8#
发表于 2013-6-14 10:30:07 | 只看该作者
SELECT DISTINCT(a.xianzhong),a.chepai,a.fadongji,b.chejiahao FROM a RIGHT JOIN b ON a.chepai=b.chepai WHERE a.fadongji!=''
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-5-18 05:54 , Processed in 0.090747 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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