把这几张表的数据放在一起,怎么实现这条sql语句

图数据库猫 发布于 2014/07/24 17:45
阅读 1K+
收藏 0

把这几张表的数据放在一起,怎么实现这条sql语句  

怎么把发送人数表,和订阅人数表,通过营销id 关联查询起来


  --营销活动-用户关系表

  select t.*, t.rowid from marketing_userinfo t

  

  --发送人数

    select   count(1) from service_user d where  d.service_id=( select p.service_id    from service_type p 

    where p.service_id =(  select n.service_id  from service_marketing n  where n.marketing_id =2264) )

    

    --订阅人数

     select t.marketing_id ,t.userinfo_id from marketing_userinfo t group by t.marketing_id,t.userinfo_id


 -- 被订阅的 营销活动

select e.* from marketing e where e.marketing_id in ( select   t.marketing_id from marketing_userinfo t)


一起,怎么实现这条sql语句  

以下是问题补充:

@图数据库猫:要用一句sql执行 ,全部集合在一起, 是不是要另外建一个子类,做为容器,把这几张表的数据合租一起 (2014/07/25 15:12)
加载中
0
len
len
你不如贴各个表有哪些字段,然后直接说你要查什么,看你这需求就没欲望往下看。
0
龙上
龙上
这个是用left join就可以了。。当然其中要有一个字段都能关联上
0
巴顿
巴顿

神马数据库?

如果是oracle的话可以发送人数建一个视图

订阅人数建一个视图

被订阅的 营销活动建一个视图

然后3个视图联合起来查询。


或者select from (select t.*, t.rowid from marketing_userinfo t) tabl1,(select t.marketing_id ,t.userinfo_id from marketing_userinfo t group by t.marketing_id,t.userinfo_id) table2,(select e.* from marketing e where e.marketing_id in ( select   t.marketing_id from marketing_userinfo t) table 3 where xxxxx


返回顶部
顶部