php - 各位大大,求个SQL统计语句
阿神
阿神 2017-04-11 09:11:23
0
2
289

一个发布交易信息模块。
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,哭晕在厕所...)

阿神
阿神

闭关修行中......

reply all(2)
Peter_Zhu

试试下面的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
左手右手慢动作

这种情况应该是用join on语句吧

select i.*,t.name,s.articlename from trade_info as i
     join trade as t on i.user_id = t.user_id 
     join 商品表 as s on i.article_id =s.article_id

解释下以上语句,首先查出所有的交易详情记录,然后用这些记录也就是trade_info表的user_id找出trade表中对应的用户名字t.name,如果没有你可能需要补上用户名字这个结构(join trade as t on i.user_id = t.user_id)
然后还是用这些记录也就是trade_info表的article_id找出商品表中对应的商品名字s.articlename,如果没有你可能需要补上商品名字这个结构(join 商品表 as s on i.article_id =s.article_id)

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!