喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
     
标题: [问题] 请问两个表从高到底排序的SQL语句怎么写呀?  
 
00jb (00jb)
新手上路
Rank: 1
资深会员



UID 29810
精华 0
积分 0
帖子 1312
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-7-3
来自 深圳
状态 离线
[广告]: 代充Paypal帐号美元
请问两个表从高到底排序的SQL语句怎么写呀?

1)表名为:table1  字段为(id,company)
   table1作用是:存公司数据.
   例table1有4个公司
    id    company
    1     aaa
    2     bbb
    3     ccc
    4     ddd
    ...

2)表名为:table2 字段为(id,company,member,star)
   company对应table1的company
   member 是网友的帐号
   star是网友对company的评价星数
   
   table2作用是:存网友对table1表中的公司评价的数据.

    id   company   member     star
    1     bbb       网友1      100
    2     ddd       网友2      10
    3     ddd       网友3      100
    4     ddd       网友4      50
    5     bbb       网友5      20
    ...

进行排序的规则:是按网友对公司评价星数的总数高到底排,没评价的就随机出现在后面.

上面的例子table1排序出来的结果应当是:

  排第一:ddd   
  排第二: bbb  
  排第三: (aaa或ccc) 因为这两都没被评价  
  排第四: (aaa或ccc) 因为这两都没被评价

  即是:(ddd,bbb,aaa,ccc 或者 ddd,bbb,ccc,aaa)


请问这样的SQL语句怎样写呀?谢谢!

[ 本帖最后由 00jb 于 2006-9-9 04:30 PM 编辑 ]
2006-9-9 04:13 PM#1
查看资料  访问主页  发短消息  顶部
 
kuco
高级会员
Rank: 4
一半会员


UID 66126
精华 0
积分 954
帖子 962
金钱 907 喜悦币
威望 0
人脉 47
阅读权限 50
注册 2005-8-23
来自 上海
状态 离线
[广告]: 代充Paypal帐号美元
SELECT sum( star ) AS ss, company
FROM table2
GROUP BY company
ORDER BY ss DESC

写不出来..帮你顶一下...嘿嘿.




阿里妈妈再掀疯狂采购风,急召天下站长,新加入站点3天内一定采购!
2006-9-9 05:48 PM#2
查看资料  Blog  发短消息  顶部
 
00jb (00jb)
新手上路
Rank: 1
资深会员



UID 29810
精华 0
积分 0
帖子 1312
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-7-3
来自 深圳
状态 离线
[推荐阅读] php ewebeditor图片上传不显示
楼上的,还有一步咋办呀?
2006-9-11 09:46 AM#3
查看资料  访问主页  发短消息  顶部
 
shfabjc
新手上路
Rank: 1
一般会员


UID 64343
精华 0
积分 27
帖子 218
金钱 27 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2005-5-25
来自 北京
状态 离线
[推荐阅读] 我是菜鸟,想 请教一个问题
SELECT sum( star ) AS ss, company
FROM table2
GROUP BY company
HAVING ss
ORDER BY ss DESC

这句就好了




<?
I VERY LIKE PHP!
?>
MY QQ:395972310 [man]
PHP交流与讨论群:中文PHP[010] - 15795617
2006-9-11 10:13 AM#4
查看资料  访问主页  发短消息  顶部
 
00jb (00jb)
新手上路
Rank: 1
资深会员



UID 29810
精华 0
积分 0
帖子 1312
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-7-3
来自 深圳
状态 离线
[推荐阅读] 免费享用3大注册商的DNS
谢谢上面两位,你们的SQL里面,table1都没有呀!!!!都只是在table2里作文章呀!

可能我没说明白呀!
要求是::::根据table2,,,要求得出table1排序出来的结果哦
2006-9-11 10:19 AM#5
查看资料  访问主页  发短消息  顶部
 
shfabjc
新手上路
Rank: 1
一般会员


UID 64343
精华 0
积分 27
帖子 218
金钱 27 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2005-5-25
来自 北京
状态 离线
[推荐阅读] 讨论一下RSS问题


QUOTE:
原帖由 00jb 于 2006-9-11 10:19 AM 发表
谢谢上面两位,你们的SQL里面,table1都没有呀!!!!都只是在table2里作文章呀!

可能我没说明白呀!
要求是::::根据table2,,,要求得出table1排序出来的结果哦
我顶多给你说个思路吧!~~ 至于 效率怎么样 我也没测过 我这边就不测试了 你去试试 呵呵 我MYSQL也一般了
我的思路是
用SELECT sum( star ) AS ss, company FROM table2 GROUP BY company HAVING ss ORDER BY ss DESC 做个子表查询然后通过 LEFT JOIN ON 语句对TABLE1 中的数据进行整合 然后按照 投票的数量进行排序




<?
I VERY LIKE PHP!
?>
MY QQ:395972310 [man]
PHP交流与讨论群:中文PHP[010] - 15795617
2006-9-11 10:28 AM#6
查看资料  访问主页  发短消息  顶部
 
蟋蟀
版主
Rank: 7Rank: 7Rank: 7
村里巡逻队长


UID 67242
精华 0
积分 2035
帖子 1762
金钱 2035 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2005-12-17
来自 福建
状态 离线
[推荐阅读] 关于MYSQL中文 个别 不能正常显示的问题
感觉你表设计的不是很合理要是这样的话会好些
company 表 公司名称表
id          company
1          aaaa
2          bbbb
3         cccc
4          dddd
comment 表 用户评论表
id        companyId       member    star
1           1                        wy1       100
2          1                         wy2       40
3         4                          wy3      10
4         4                         wy4       20

//查询的时候可以这样
select a.id,a.company,b.member,count(b.star) as num from company as a left join
comment as b on a.id=b.companyId group by a.company order by num desc;




吉林php群
27089230
2006-9-11 10:46 AM#7
查看资料  Blog  发短消息  QQ  顶部
 
00jb (00jb)
新手上路
Rank: 1
资深会员



UID 29810
精华 0
积分 0
帖子 1312
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-7-3
来自 深圳
状态 离线
[推荐阅读] 看这是什么问题
哈哈.蟋蟀 谢谢了,好了.
2006-9-11 11:22 AM#8
查看资料  访问主页  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.209551 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP