社区
MySQL
帖子详情
有没有比较好的办法横向合并查询结果
VioletUndead
2009-05-11 10:28:57
有这样一个表
id value
1 123
1 456
1 444
2 11
2 44
怎么得到
1 123 456 444
2 11 44
这种?
...全文
196
10
打赏
收藏
有没有比较好的办法横向合并查询结果
有这样一个表 id value 1 123 1 456 1 444 2 11 2 44 怎么得到 1 123 456 444 2 11 44 这种?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ACMAIN_CHM
2009-05-11
打赏
举报
回复
另外如果你的MySQL是4.1就支持子查询了不需要MySQL5。如果4.0以下则不行。
关于MySQL如何生成row_number
MySQL中的ROWNUM的实现
http://blog.csdn.net/ACMAIN_CHM/archive/2009/04/20/4095531.aspx
ACMAIN_CHM
2009-05-11
打赏
举报
回复
网页中的话,不如就用你现在的方法,对 group_concat(value) 返回进行一下处理效率反而比较高。比如你可以split 一下然后显示成多列<td>中去。
WWWWA
2009-05-11
打赏
举报
回复
简单地讲,在子查询中生成序号,用静态方法生成交叉表,
5。X支持子查询
VioletUndead
2009-05-11
打赏
举报
回复
谢谢两位
我现在就是用的2楼所说这种,不过在网页表格里把结果放在一个格子了,用逗号隔开显示的
1楼这个可行,貌似mysql不支持from子句子查询的,这个怎么可行的?
ACMAIN_CHM
2009-05-11
打赏
举报
回复
可以简单的用
select id,group_concat(value)
from 一个表
group by id
然后在你的程序中把逗号分隔符替换为TAB,或者直接处理。
如果一定要分列,如果列数不确定的话,则只能通过你的程序或存储过程来实现。
wwwwb
2009-05-11
打赏
举报
回复
select id,max(if(anum=1,values,0)) as a1,
max(if(anum=2,values,0)) as a2,
max(if(anum=3,values,0)) as a3
from (
select a.id,a.value,count(b.id) as anum
from tt a left join tt b on a.id=b.id and a.value>=b.id group by a.id,a.value) a1
group by id
VioletUndead
2009-05-11
打赏
举报
回复
这个sql在加些别的查询条件,执行的速度比一般查询语句明显慢。不过现在数据也不是太多,查询时间显示还是0.多秒的样子。
其实这个感觉还是用程序来弄比较合理。关于存储过程我还不会,所以没法弄。
谢谢两位提供的方案了。
ACMAIN_CHM
2009-05-11
打赏
举报
回复
如果项目比较多或者本身记录很多的情况下用这种SQL语句效率会比较差。或者项目的数量不固定时,如果不能在程序中调整,则建议利用存储过程来实现了。通过存储过程把 order by id, value 的记录放入临时表矩阵。
WWWWA
2009-05-11
打赏
举报
回复
呵呵,sql语句不算复杂吧。
VioletUndead
2009-05-11
打赏
举报
回复
用PHP处理其实是比较好弄的,split能搞定。不过由于整个系统的框架的设置,这个得用smarty模板来处理,smarty没找到类似split的函数。用WWWWA这个方法,不过sql语句比较复杂,查询效率不是太好。
多背景
横向
合并
属性特征分析 (2009年)
目的研究多形式背景
横向
合并
前后属性特征的变化情况。...结果得到了形式背景的属性特征在
横向
合并
前后的关系。结论 多形式背景
横向
合并
前后属性特征有着内在的联系,为进一步研究其属性约简之间的关系有重要意义。
mysql
查询
两张表
横向
合并
实现类似full join
由于本人项目要求,统计一张表里用户已读、未读状态的总数,具体业务逻辑
比较
复杂,所以用简单两张表实现
横向
合并
: A 表示信息未读数量统计: B 表示已读数量统计: 最终结果表: 现在要将A B表
合并
成一...
mysql
查询
结果
横向
拼接_两个SQL
查询
,
横向
合并
为一个
查询
结果
第一条sql:selectunit,count(*)asnumberfromarchives_managementgroupbyunit第二条sql:selectfine_units,count(*)asfine_numberfromfinegroupbyfine_units注:两条sql分别
查询
结果如下图 要求生成如下格式:unit...
oracle把两个结果集
横向
展示_两个SQL
查询
,
横向
合并
为一个
查询
结果
第一条sql:selectunit,count(*)asnumberfromarchives_managementgroupbyunit第二条sql:selectfine_units,count(*)asfine_numberfromfinegroupbyfine_units注:两条sql分别
查询
结果如下图要求生成如下格式:unit...
横向
合并
mysql表
将多个带有相同字段的mysql数据表进行
横向
合并
我现在想做的就是将相同id和code的字段进行
横向
合并
,因为左右表都可能不全,所以左连接右连接都不符合我的要求 只能用全连接,变成如下的效果,缺的地方为null 我...
MySQL
56,681
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章