求一SQL语句

ccb8888 2009-03-17 02:15:13
首先有两个结果集
select madename,mid from made
select madename,mid from version
我要把这两个结果集连接起来,而且不能有重复,当然一个结果集中不会有数据重复,主要是当合并了made结果集和version结果集时会存在数据重复。
...全文
117 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
A海阔天空 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzxap 的回复:]
SQL code
SELECT DISTINCT * FROM
(
select madename,mid from made
UNION ALL
select madename,mid from version
)A
[/Quote]

正解
liuhong_0325 2009-03-17
  • 打赏
  • 举报
回复

select made.madename as aname,made.mid as amid,version.madename as bname,version.mid as bmid from made,version where made.mid=version.mid
wolf1118baby 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 koukoujiayi 的回复:]
也可以:
select distinct madename,distinct mid from made as a join version as b
on a.madename=b.madename
[/Quote]
支持
ccb8888 2009-03-17
  • 打赏
  • 举报
回复
看了以上答案后,我想问一个效率问题
根据我问的题目,
其实4楼的用法就可以解决
select madename,mid from made
union
select madename,mid from version
但是4的方法在效率上肯定会比union all要慢(为什么慢?大家可以看看这帖子:http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270286.html)

但是我看见了5楼的一个比较巧妙的用法,他是用union all+distinct来实现
SELECT DISTINCT * FROM
(
select madename,mid from made
union all
select madename,mid from version
)A orderby madename

请问这两个方法在效率上那个快呢?

谁能肯定点告诉我吗?
浪子-无悔 2009-03-17
  • 打赏
  • 举报
回复
5楼的应该快点吧。。
ccb8888 2009-03-17
  • 打赏
  • 举报
回复
看了以上答案后,我想问一个效率问题
根据我问的题目,
其实4楼的用法就可以解决
select madename,mid from made
union
select madename,mid from version
但是4的方法在效率上肯定会比union all要慢(为什么慢?大家可以看看这帖子:http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/18/1270286.html)

但是我看见了5楼的一个比较巧妙的用法,他是用union all+distinct来实现
SELECT DISTINCT * FROM
(
select madename,mid from made
union all
select madename,mid from version
)A orderby madename

请问这两个方法在效率上那个快呢?
xianguang321 2009-03-17
  • 打赏
  • 举报
回复
4楼正解
baiyunyinv 2009-03-17
  • 打赏
  • 举报
回复

SELECT DISTINCT * FROM
(
select madename,mid from made
union all
select madename,mid from version
)A orderby madename

koukoujiayi 2009-03-17
  • 打赏
  • 举报
回复
抱歉7楼上看错题目!!
koukoujiayi 2009-03-17
  • 打赏
  • 举报
回复
也可以:
select distinct madename,distinct mid from made as a join version as b
on a.madename=b.madename
zzxap 2009-03-17
  • 打赏
  • 举报
回复
还有其他什么要求不?
zzxap 2009-03-17
  • 打赏
  • 举报
回复
[CODE=SQL]
SELECT DISTINCT * FROM
(
select madename,mid from made
UNION ALL
select madename,mid from version
)A
[/CODE]
feiyun0112 2009-03-17
  • 打赏
  • 举报
回复
select madename,mid from made
union
select madename,mid from version

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
深海之蓝 2009-03-17
  • 打赏
  • 举报
回复
select distinct madename,distinct mid from made,version
ccb8888 2009-03-17
  • 打赏
  • 举报
回复
例如我的made结果集中包含的数据如下:
madename mid
AAA 1
BBB 2
CCC 3

version结果集包含的数据如下:
madename mid
AAA 1
BBB 2
DDD 4
EEE 5

合并这两个结果集后如下:
madename mid
AAA 1
BBB 2
CCC 3
DDD 4
EEE 5

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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