分配的任务,让我写两个查询语句,有点方,毕竟数据库只会简单的查询
幸好有强大的团队!
1.查询有多少个用户参加活动(涉及的表有marketing,marketing_success)
marketing表有code='201601003'
marketing_success 有 marketing_id
做一个简单的左连接查询
select count(*)
from marketing_success ms left join
marketing m on ms.marketing_id=m.id
where m.code='201601003';
本来是
select count(*)
from marketing_success ms ,
marketing m
where m.code='201601003' and ms.marketing_id=m.id;
后来我一个同事看到之后很惊奇还有人这样写连接,好吧,虽然我知道左连接,但是基本上不会去用它,看来要改了这毛病
2.已经使用过优惠券的订单总数(purchase_order,purchase_order_gift,gift,marketing_success)
gift(source==marketing_success.id,source_type=2)
select count(*)
from purchase_order_gift pog
left join gift g
on pog.gift=g.id
where g.source_type=2 and exists (select 1 from marketing_success ms where g.source = ms.id and ms.marketing_id = 29) ;
查询第29和订单的使用优惠券的数量
如果存在exists这么一个活动的话,exists函数里的连接就成立。。。