qq_24623729
qq_24623729
采纳率100%
2019-10-15 21:36

求两句SQL语句,Mysql的,数据表结构颠覆了我的认知。。

已采纳

我也不知道这几张表谁建的,
俺也不敢说,俺也不敢问,
刚进公司实习,同事安排我写SQL语句,
我十分蛋疼的写到自闭想离开了,
尝试着写了写,求大佬帮忙看一下。。
在我的认知里,
店面类型应该储存在店面表里一个叫 类型ID的字段,
这样类型表可以只有几条分类数据,有几种分类就有几条记录,
可是他竟然把所有店面ID丢到了店面类型表里,
这就代表着,商品表有多少记录,分类表就也有多少记录。。

表大概长这样:
店面表(店面ID,平台ID),
订单表(订单ID,店面ID,成交数量,成交金额),
店面类型表(未知作用的主键ID,类型ID,类型名,店面ID),

然后同事让我写这么一个功能:
给一个平台ID,查询出每种类型的店面都成交了多少钱

拿到需求后,我先做出分析,

先用平台ID,查出这个平台ID对应的所有店面ID,
然后再用店面ID,查询出这个店面的成交金额总和,
然后再去类型表里,按照类型分组,把类型相同的店面的成交金额都加起来得到最终结果。

然后开始写,
select 店面ID,sum(成交金额)
from 订单表 inner join 店面表 on 店面表.店面ID=订单表.店面ID
and 店面表.平台ID=1;

然后分组

select 类型ID,sum(成交金额)
from 订单表 
inner join 店面表 on 店面表.店面ID = 订单表.店面ID
inner join 店面类型表 on 店面类型表.店面ID = 店面表.店面ID
group by 店面类型表.类型ID

最终我提交的就是这句了,请问大佬,对吗?如果不对的话要怎么写?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • guangcaiwudong Kevin.Y.K 2年前

    没啥问题

    select 类型ID, max(店面类型表.类型名), sum(成交金额)
    from 订单表 
    inner join 店面表 on 店面表.店面ID = 订单表.店面ID
    inner join 店面类型表 on 店面类型表.店面ID = 店面表.店面ID and 店面表.平台ID=1
    group by 店面类型表.类型ID
    
    点赞 评论 复制链接分享
  • qq_45748521 qq_45748521 2年前

    你可以去学习一下字典表 可以帮你解决你面临的问题

    点赞 评论 复制链接分享