论坛首页 综合技术论坛

数据库的查询(mysql)查询 group by order by

浏览 4088 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-06-05  

由于在维护一些系统:一些表的设计不够完美!

 

有三个表:

users               用户表

customer         客户表(对应users表)

addmoney       给客户添加money的纪律表

 

users和customer是一对一关系,users和addmoney是一对多的关系

 

要求:现在要查某个客户的第一条充值信息

 

平时对数据库查询方式了解不是经常用,所以话了一点时间,将下面的语句成了出来

 

select u.money_remain,

          ba.price,ba.total_count,

          ba.total_price,

          bc.company_name,

          bc.total_balance
        from users u , boss_customer bc, boss_addmoney ba
  where bc.belong_sales = 'jijun' and u.user_id = bc.user_id and u.username = ba.name

  group by u.username

  order by ba.name,ba.add_date

 

这样group 出来的第一条充值记录哦!

 

巧用group by   和  order by,可以很快速的查询我想要的数据。还有在mysql里面使用in(),效率很慢。

 

group by 要放在 order by的前面

 

 

   发表时间:2009-07-20  
我觉得这个SQL会报错呀!
0 请登录后投票
   发表时间:2009-07-21  
luzl 写道
我觉得这个SQL会报错呀!

这个虽然不符合ANSI SQL但在mysql中不会报错. 但这种用法大多数情况下都是不合理的。
具体请看Mysql文档中group by那一章
LZ这个sql就是错误使用group by典型案例。。。。
0 请登录后投票
   发表时间:2009-11-03  
对啊,你这个语句会不出错?group by 没有select的东西...
0 请登录后投票
   发表时间:2009-11-05   最后修改:2009-11-05
对,在mysql,没有编译错误,但对于LZ你自己给出的需求,该SQL是有逻辑错误。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics