php怎么把多个sql查询结果集合并?每个结果集的结构不同
有三个结果集A,B,C,分别是从不同的表联合查询出的结果。A:selecttime,type,property1,property2,property3,pricefro...
有三个结果集A,B,C,分别是从不同的表联合查询出的结果。
A:select time,type,property1,property2,property3,price from xxxxxx……
B:select time,type,property4 price from xxxxxx……
C:select time,type,property5,property6 from xxxxxx……
现要将三个查询结果集合并,并按time时间字段排序,最后打印出每行信息。
请问该如何实现? 展开
A:select time,type,property1,property2,property3,price from xxxxxx……
B:select time,type,property4 price from xxxxxx……
C:select time,type,property5,property6 from xxxxxx……
现要将三个查询结果集合并,并按time时间字段排序,最后打印出每行信息。
请问该如何实现? 展开
展开全部
最简单的方法,把结果弄成一致,例如使用下面的SQL查询语句:
select time,type,property1,property2,property3,price from xxxxxx……
union all
select time,type,property4,price,0,0 from xxxxxx……
union all
select time,type,property5,property6,0,0 from xxxxxx……
方法是使用UNION ALL合并查询结果,对于查询字段少的语句增加0或者空白、null等常量,使得查询结果的字段数要相同。
为了得到特殊的排序,可以把上面的查询结果插入临时表,再从临时表中查询结果。
select time,type,property1,property2,property3,price from xxxxxx……
union all
select time,type,property4,price,0,0 from xxxxxx……
union all
select time,type,property5,property6,0,0 from xxxxxx……
方法是使用UNION ALL合并查询结果,对于查询字段少的语句增加0或者空白、null等常量,使得查询结果的字段数要相同。
为了得到特殊的排序,可以把上面的查询结果插入临时表,再从临时表中查询结果。
追问
找个时间试试你说的方法。临时表的方法也想到过,但是不是很了解,特别是对于临时表名的冲突问题。因为是根据输入条件进行的查询,怎样避免临时表重复,以及多个人同时查询时的情况临时表应该如何处理?
追答
临时表不会冲突,临时表别的会话是看不见的,就是你有两个程序同时建立同名的临时表,各自访问是不会冲突的。
注意是临时表,建立语句应该是:
CREATE TEMPORARY TABLE .....
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询