浏览 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 group by u.username order by ba.name,ba.add_date
这样group 出来的第一条充值记录哦!
巧用group by 和 order by,可以很快速的查询我想要的数据。还有在mysql里面使用in(),效率很慢。
group by 要放在 order by的前面
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-20
我觉得这个SQL会报错呀!
|
|
返回顶楼 | |
发表时间:2009-07-21
luzl 写道 我觉得这个SQL会报错呀!
这个虽然不符合ANSI SQL但在mysql中不会报错. 但这种用法大多数情况下都是不合理的。 具体请看Mysql文档中group by那一章 LZ这个sql就是错误使用group by典型案例。。。。 |
|
返回顶楼 | |
发表时间:2009-11-03
对啊,你这个语句会不出错?group by 没有select的东西...
|
|
返回顶楼 | |
发表时间:2009-11-05
最后修改:2009-11-05
对,在mysql,没有编译错误,但对于LZ你自己给出的需求,该SQL是有逻辑错误。
|
|
返回顶楼 | |