php - 各位大大,求个SQL统计语句

查看:113
本文介绍了php - 各位大大,求个SQL统计语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

一个发布交易信息模块。
trade交易信息表关键字段如下:

id      自增ID 
user_id 用户ID
time    发布时间

trade_info交易信息详情表关键字段如下:

id              自增ID
trade_id        交易信息ID
article_type_id 物品类型
article_id      物品名称
value           价格
number          数量
style           交易方式(供应/采购)

嗯,大致有以上这么几个关键字段。

统计出已发布的信息中每个用户->每种物品->每种价格->每种交易方式的所有可能性数量总和。

举例说明,比如我的物品有桌子,椅子,凳子,价格有很多,但都是整数来的,没有定数。统计的结果大致如下:

发布人   名称   价格 交易方式 总数量 
张三     凳子   100   供应    2   //张三发布供应的凳子价格为100的总数为2
张三     凳子   200   供应    3   //张三发布供应的凳子价格为200的总数为3
张三     凳子   200   求购    10  //张三发布求购的凳子价格为200的总数为10
张三     桌子   50    求购    10  //张三发布求购的桌子价格为50的总数为10
李四     凳子   100   供应    20  //李四发布供应的凳子价格为100的总数为20
......

以上,求个sql语句。(自己mysql本来就很薄弱,弄个语句难为死我了,忧伤.jpg)


来看看我是怎么做的。->_->取出发布过信息的所有用户集合,取出发布过的所有物品ID集合,取出发布过所有价格集合,交易方式集合(供/求),然后循环几个数组,大致如下:

//为了满足这样的用法,自己特意在trede_info表加了user_id字段,直接去trede_info表查询
foreach ($by_user as $k => $v) {
    foreach ($by_article as $m => $n) {
        foreach ($by_value as $p => $q) {
            foreach ($by_style as $g => $h) {
                
            
            }
        }
    }
}

运行慢的要死,一二十条数据就3s多了,我也是醉了。
(不要说我智障,虽然我有自知之明,哈哈~但是真的只会这么多了,笑cry,哭晕在厕所...)

解决方案

试试下面的sql语句

用户姓名,在你说的表中没有涉及,假设存放在user表中,字段为user_name,如:

user表
    user_id 用户ID
    user_name 用户姓名

select t3.user_name, t2.article_id, t2.value, t2.style, sum(t2.number)
from trade_info t1 
     inner join trade on t2 on t2.id = t1.id
     inner join user t3 on t3.user_id = t1.user_id
group by t3.user_name, t2.article_id, t2.value, t2.style

这篇关于php - 各位大大,求个SQL统计语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆