sql 多表查询消重问题

lystart 2006-05-25 10:47:57
select distinct a.number,a.[name],b.[name] name2,b.conn from fun a left join type b on a.[name]=b.conn group by a.number,a.[name],b.[name],b.conn order by a.number asc

查询结果是这样的:

88-99菜刀 波恩系列 88-99菜刀 1
88-99菜刀 牛津系列 88-99菜刀 6
88-99菜刀 波恩系列 88-99菜刀 6
88-99菜刀 牛津系列 88-99菜刀 1

请问如何能够消除重复使其变为:
88-99菜刀 波恩系列 88-99菜刀 6
88-99菜刀 牛津系列 88-99菜刀 1

请高手指点一下;
...全文
419 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
chl_seu 2006-05-26
  • 打赏
  • 举报
回复
有时可以通过where语句消除重复
flyzq 2006-05-26
  • 打赏
  • 举报
回复
表设计成这样
dotnettalk 2006-05-26
  • 打赏
  • 举报
回复
select distinct B.number as number,B.name as name,A.name name2,A.conn where B.number==A.number
dotnettalk 2006-05-26
  • 打赏
  • 举报
回复
select B.number as number,B.name as name,A.name name2,A.conn where B.number==A.number

自然框架 2006-05-26
  • 打赏
  • 举报
回复
帮你顶
liangpei2008 2006-05-25
  • 打赏
  • 举报
回复
把原始数据贴出来!可能会直接得到你想要的结果,为什么要在子查询的基础上做过滤呢?
lystart 2006-05-25
  • 打赏
  • 举报
回复
兄弟们不行啊.
用这个语句不行的了
select distinct * from(select distinct a.number,a.[name],b.[name] name2,b.conn from fun a left join type b on a.[name]=b.conn group by a.number,a.[name],b.[name],b.conn)
a order by number asc

显示结果如下
number name name2 conn
1 88-99菜刀 波恩系列 88-99菜刀
1 88-99菜刀 牛津系列 88-99菜刀
6 88-99菜刀 波恩系列 88-99菜刀
6 88-99菜刀 牛津系列 88-99菜刀

必须做成这样才行;

number name name2 conn
1 88-99菜刀 牛津系列 88-99菜刀
6 88-99菜刀 波恩系列 88-99菜刀

有没有其它办法;谢谢
lystart 2006-05-25
  • 打赏
  • 举报
回复
谢谢大家,我试试.
Jack2013tong 2006-05-25
  • 打赏
  • 举报
回复
select distinct * from(select distinct a.number,a.[name],b.[name] name2,b.conn from fun a left join type b on a.[name]=b.conn group by a.number,a.[name],b.[name],b.conn)
a order by number asc
这样也可以
还有其它办法,暂不列
wwh999 2006-05-25
  • 打赏
  • 举报
回复
沒規律
losedxyz 2006-05-25
  • 打赏
  • 举报
回复
哦,看错了
为什么是
88-99菜刀 波恩系列 88-99菜刀 6
88-99菜刀 牛津系列 88-99菜刀 1

没有 规律啊
losedxyz 2006-05-25
  • 打赏
  • 举报
回复
try:

select distinct * from
(select distinct a.number,a.[name],b.[name] name2,b.conn from fun a left join type b on a.[name]=b.conn group by a.number,a.[name],b.[name],b.conn )
order by a.number asc

lystart 2006-05-25
  • 打赏
  • 举报
回复
为何消重的问题就没有法解决呢.
lystart 2006-05-25
  • 打赏
  • 举报
回复
自己先up一下;
colinmok 2006-05-25
  • 打赏
  • 举报
回复
这个是内联接的,只取条伯匹配的数据。。
colinmok 2006-05-25
  • 打赏
  • 举报
回复
select distinct * from(select distinct a.number,a.[name],b.[name] name2,b.conn from fun a innerjoin type b on a.[name]=b.conn group by a.number,a.[name],b.[name],b.conn)
a order by number asc
lystart 2006-05-25
  • 打赏
  • 举报
回复
就没有人回答这个问题.看来这个问题还真是难啊.
lystart 2006-05-25
  • 打赏
  • 举报
回复
还是不正确啊@
yuxiang2004 2006-05-25
  • 打赏
  • 举报
回复
select a.*,b.* from 表A a,表B b where a.conn=b.name
yuxiang2004 2006-05-25
  • 打赏
  • 举报
回复
select 表B.number,表B.name,表A.name2,表A.conn from 表B join 表A on 表B.name=表A.conn
加载更多回复(4)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧