mysql查询语句 多条合并

mysql查询语句 多条合并,第1张

最笨的方式就是把这么多条查询结果当成表,然后select全部,虽然笛卡尔积,但是每个查询都只有一条记录。

select * from

(select count(t1.fXM)as A1 from KJ_KJHDRYMXB t1 where t1.fDW = 'a部' )a,

(select count(t2.fJSZW)AS A2 from KJ_KJHDRYMXB t2 where  t2.fJSZW = '项目人员' and t2.fDW = 'a部')b,

(select count(t3.fJSZW)AS A3 from KJ_KJHDRYMXB t3 where (t3.fJSZW = '服务人员'or t3.fJSZW = '管理人员') and t3.fDW = 'a部')c,

(select count(t31.fXB)AS A4 from KJ_KJHDRYMXB t31 where t31.fXB = '女' and t31.fDW = 'a部')d

(select count(t4.fZC)AS A5 from KJ_KJHDRYMXB t4 where (t4.fZC = '高级职称'or t4.fZC = '中级职称')and t4.fDW = 'a部')d,

(select count(t5.fXM)AS A6 from KJ_KJHDRYMXB t5 where  t5.fDW = 'a部')e

(select count(t6.fXL)AS A7 from KJ_KJHDRYMXB t6 where t6.fXL = '博士'and t6.fDW = 'a部')f

(select count(t7.fXL)AS A8 from KJ_KJHDRYMXB t7 where t7.fXL = '硕士' and t7.fDW = 'a部')g

(select count(t8.fXL)AS A9 from KJ_KJHDRYMXB t8 where t8.fXL = '本科'and t8.fDW = 'a部')h

如果选出记录个数不固定,那就得动态拼出sql再执行,如果是固定返回3个,可以with t as (SELECT t.ASSIGNEE_,t.END_TIME_, row_number() over(order by t.ASSIGNEE_) r FROM act_hi_taskinst t WHERE t.PROC_INST_ID_ = 10621)select t1.ASSIGNEE_ ASSIGNEE_1,t1.END_TIME_ END_TIME_1,t2.ASSIGNEE_ ASSIGNEE_2,t2.END_TIME_ END_TIME_2,t3.ASSIGNEE_ ASSIGNEE_3,t3.END_TIME_ END_TIME_3from (select * from t where r=1) t1 cross join (select * from t where r=2) t2cross join (select * from t where r=3) t3

mysql中,有标准函数,group_concat(name),直接返回连接好的字符串,并以逗号分割,如果记录比较多,超过函数返回值的最大值,可以调整mysql启动参数,增加显示值的长度。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6263878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存