SQL查询结果合并

我爱大可乐 2017-07-02 12:18:46
同一个表的两个查询结果,(
SELECT 通信方式,`对方号码` FROM tonghua WHERE `通信方式` = '主叫' GROUP BY `对方号码` LIMIT 2;
SELECT 通信方式,`对方号码` FROM tonghua WHERE `通信方式` = '被叫' GROUP BY `对方号码` LIMIT 2;

通信方式 号码
主叫 454545
主叫 121212

通信方式 号码
被叫 545121
被叫 1212121

怎么将这两条查询语句合并起来,显示结果为

通信方式 号码
主叫 454545
主叫 121212
被叫 545121
被叫 1212121
...全文
490 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2017-07-03
  • 打赏
  • 举报
回复
引用 8 楼 baidu_35289351 的回复:
为什么不用 or WHERE `通信方式` = '主叫' or `通信方式` = '被叫' 是不是用 or 的效率低?我在网上查,说 or 会导致索引失效?
baidu_35289351 2017-07-03
  • 打赏
  • 举报
回复
为什么不用 or WHERE `通信方式` = '主叫' or `通信方式` = '被叫' 是不是用 or 的效率低?我在网上查,说 or 会导致索引失效?
二月十六 版主 2017-07-03
  • 打赏
  • 举报
回复
2#哪个写的确实不对,可以按照6#大版写的,也可以这样试试
SELECT  通信方式,`对方号码`  FROM tonghua WHERE `通信方式` = '主叫' GROUP BY `对方号码` LIMIT 2
union all
SELECT  通信方式,`对方号码`  FROM tonghua WHERE `通信方式` = '被叫' GROUP BY `对方号码` LIMIT 4
中国风 2017-07-03
  • 打赏
  • 举报
回复
#2方法改改 用括号括起来
SELECT * FROM (SELECT  通信方式,`对方号码`  FROM tonghua WHERE `通信方式` = '主叫' GROUP BY `对方号码` LIMIT 2) AS t
union all
SELECT * FROM (SELECT  通信方式,`对方号码`  FROM tonghua WHERE `通信方式` = '被叫' GROUP BY `对方号码` LIMIT 2) AS t
acen_chen 2017-07-03
  • 打赏
  • 举报
回复
就这为什么要写两条sql。。。
xiaoxiangqing 2017-07-03
  • 打赏
  • 举报
回复
用union all 就行了
道素 2017-07-03
  • 打赏
  • 举报
回复
或者你也可以这样试试:

drop table if exists table1;
create table table1(ID int, ph_no varchar(100),call_type varchar(100));
insert into table1(ID,ph_no,call_type)
select 1,'454545','Caller' union all
select 2,'121212','Caller' union all
select 3,'2222222','Caller' union all
select 4,'545121','Called' union all
select 5,'1212121','Called' union all
select 6,'666666','Called' union all
select 1,'454545','Called';
select * from (
    select table1.*,@row_num:=case when @CallType=call_type then @row_num+1 else 1 end as seq,@CallType:=call_type as ct
    from table1,(SELECT @row_num := 0,@CallType:='') x
    order by call_type
) as t where t.seq<=2
;

  	ID	ph_no	call_type	seq	ct
1	4	545121	Called	1	Called
2	5	1212121	Called	2	Called
3	1	454545	Caller	1	Caller
4	2	121212	Caller	2	Caller

二月十六 版主 2017-07-02
  • 打赏
  • 举报
回复
SELECT  通信方式,`对方号码`  FROM tonghua WHERE `通信方式` = '主叫' GROUP BY `对方号码` LIMIT 2
union all
SELECT  通信方式,`对方号码`  FROM tonghua WHERE `通信方式` = '被叫' GROUP BY `对方号码` LIMIT 2
卖水果的net 版主 2017-07-02
  • 打赏
  • 举报
回复
select 。。。 union all -- 两个select 之间,加一个这个 select 。。。。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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