Database 板


LINE

你需要的是 row ranking, 但 MySQL 没有原生支援, 可以用其他方法取得 但建议还是分开查询比较好, 让应用程式抓三次结果 (原因看下面就知道) 一个十分逆天的查询的做法如下, 假设资料表为 income, pay, pay2 首先要取得一个日期有几笔资料: http://codepad.org/4YGa69Hd 传回结果: +------------+------+ | date | rank | +------------+------+ | 2011-01-01 | 1 | | 2011-01-01 | 2 | | 2011-01-01 | 3 | | 2011-01-01 | 4 | | 2011-01-02 | 1 | | 2011-01-02 | 2 | | 2011-01-03 | 1 | | 2011-01-04 | 1 | +------------+------+ 用此结果以 date, rank LEFT JOIN income, pay, pay2: http://codepad.org/18iPgXOK 传回结果: +------------+--------+------+------+ | date | income | pay | pay2 | +------------+--------+------+------+ | 2011-01-01 | 100 | 50 | 50 | | 2011-01-01 | 150 | 50 | 50 | | 2011-01-01 | NULL | 50 | 10 | | 2011-01-01 | NULL | 10 | NULL | | 2011-01-02 | 100 | 30 | 30 | | 2011-01-02 | NULL | 10 | 10 | | 2011-01-03 | 50 | 50 | 50 | | 2011-01-04 | NULL | 50 | 50 | +------------+--------+------+------+ 注: 这边SQL把每个 JOIN 都完整写出来, 不用缩写, 不过 MySQL 伺服器做的事情一样 这边用了一堆 JOIN, 用 EXPLAIN 出来有 17 个表, 资料一多效能一定很差 (UNION 2, UNION RESULT 1, PRIMARY 4, DERIVED 4, DEPENDENT SUBQUERY 6) 可以有更好的写法, 如使用 view, temporary table 等等 不过我建议还是在应用程式排版较好, 对 MySQL 伺服器的负担小太多了 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 71.107.127.201 ※ 编辑: danielguo 来自: 71.107.127.201 (04/01 08:50)
1F:→ fantasyj:我比较好奇的是原po没注明dbms,您如何确定原po是用mysql? 04/01 09:34
2F:→ averywu:因为会问这种笨问题的通常都不会使用太POWERFUL的DBMS 04/01 09:50
3F:→ danielguo:XD, 倒是没想到, 不过感觉像 MySQL 04/01 10:06
4F:→ danielguo:不过不管是哪种 DBMS, 基本上知道不要这样用这点就行了 04/01 10:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP