5 个解决方案
#1
试试这个select * from t1 union all select * from t2 union all select * from t3 ……
#2
这个我也尝试过了,主要是这几个表字段数量不一致,union all也不能实现
#3
那可不可能这样
select a.f1,a.f2,a.f3,b.f2,b.f5 from t1 as a,t2 as b;
这样的结果是b字段放到a字段的后面,结果中记录的数量与两个表中记录数量最多的相同,至于查询结果的处理应该可以实现,试试吧。
select a.f1,a.f2,a.f3,b.f2,b.f5 from t1 as a,t2 as b;
这样的结果是b字段放到a字段的后面,结果中记录的数量与两个表中记录数量最多的相同,至于查询结果的处理应该可以实现,试试吧。
#4
并列毫无关系的表只能极大的笛卡尔积,显然是不合理的
可以使用联合(union)
union 只要求堆领列的类型相同,并没有要求列名也相同
你只需逐个开列所需字段就可以了
可以使用联合(union)
union 只要求堆领列的类型相同,并没有要求列名也相同
你只需逐个开列所需字段就可以了
#5
就用union all
select * from (select titleA,addtime from t1 union all select titleB,addtime from t2 union all select titleC,addtime from t3) order by addtime
select * from (select titleA,addtime from t1 union all select titleB,addtime from t2 union all select titleC,addtime from t3) order by addtime
#1
试试这个select * from t1 union all select * from t2 union all select * from t3 ……
#2
这个我也尝试过了,主要是这几个表字段数量不一致,union all也不能实现
#3
那可不可能这样
select a.f1,a.f2,a.f3,b.f2,b.f5 from t1 as a,t2 as b;
这样的结果是b字段放到a字段的后面,结果中记录的数量与两个表中记录数量最多的相同,至于查询结果的处理应该可以实现,试试吧。
select a.f1,a.f2,a.f3,b.f2,b.f5 from t1 as a,t2 as b;
这样的结果是b字段放到a字段的后面,结果中记录的数量与两个表中记录数量最多的相同,至于查询结果的处理应该可以实现,试试吧。
#4
并列毫无关系的表只能极大的笛卡尔积,显然是不合理的
可以使用联合(union)
union 只要求堆领列的类型相同,并没有要求列名也相同
你只需逐个开列所需字段就可以了
可以使用联合(union)
union 只要求堆领列的类型相同,并没有要求列名也相同
你只需逐个开列所需字段就可以了
#5
就用union all
select * from (select titleA,addtime from t1 union all select titleB,addtime from t2 union all select titleC,addtime from t3) order by addtime
select * from (select titleA,addtime from t1 union all select titleB,addtime from t2 union all select titleC,addtime from t3) order by addtime