社区
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
这种?
...全文
197
10
打赏
收藏
有没有比较好的办法横向合并查询结果
有这样一个表 id value 1 123 1 456 1 444 2 11 2 44 怎么得到 1 123 456 444 2 11 44 这种?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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语句比较复杂,查询效率不是太好。
DataGridView
合并
单元格(纵向
合并
及
横向
合并
)
DataGridView
合并
单元格(纵向
合并
及
横向
合并
) 京华志&精华志出品 分享资源 C# ASP.NET SQL DBA 源码
mysql
查询
两张表
横向
合并
实现类似full join
由于本人项目要求,统计一张表里用户已读、未读状态的总数,具体业务逻辑
比较
复杂,所以用简单两张表实现
横向
合并
: A 表示信息未读数量统计: B 表示已读数量统计: 最终结果表: 现在要将A B表
合并
成一张表,由于本人
比较
懒,能用一个sql解决的,绝对不会用两个sql实现,具体分析情况如下: 如下情况会导致数据丢失,因为要统计id有数据的 SELECT * FROM A a LE...
mysql
查询
结果
横向
拼接_两个SQL
查询
,
横向
合并
为一个
查询
结果
第一条sql:selectunit,count(*)asnumberfromarchives_managementgroupbyunit第二条sql:selectfine_units,count(*)asfine_numberfromfinegroupbyfine_units注:两条sql分别
查询
结果如下图 要求生成如下格式:unit...
mysql
横向
合并
两个表_mysql
查询
两张表
横向
合并
实现类似full join
由于本人项目要求,统计一张表里用户已读、未读状态的总数,具体业务逻辑
比较
复杂,所以用简单两张表实现
横向
合并
:A 表示信息未读数量统计: B 表示已读数量统计: 最终结果表: 现在要将A B表
合并
成一张表,由于本人
比较
懒,能用一个sql解决的,绝对不会用两个sql实现,具体分析情况如下:如下情况会导致数据丢失,因为要统计id有数据的SELECT * FROM A a LEFT JOIN B b ON...
横向
合并
mysql表
将多个带有相同字段的mysql数据表进行
横向
合并
我现在想做的就是将相同id和code的字段进行
横向
合并
,因为左右表都可能不全,所以左连接右连接都不符合我的要求 只能用全连接,变成如下的效果,缺的地方为null 我的步骤如下,如有大佬有更好的方法,请留下你的脚印,小弟我不胜感激 – CREATE TABLE test11 as – SELECT * FROM test a left join...
MySQL
56,866
社区成员
56,753
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章