Mysql 没有公共字段的SQL联接表

Mysql 没有公共字段的SQL联接表,mysql,sql,database,Mysql,Sql,Database,我希望将两个不相关的表合并到一个表中,这样我就可以按公共字段排序,并限制组合结果集在页面上显示 范例 Table 1 Field1 | Field2 | Field3 | date_posted -------------------------------------- Blah | Blah2 | Blah3 | 2013-02-01 Table 2 Field4 | Field 5 | date_posted ------------------------------ Bl

我希望将两个不相关的表合并到一个表中,这样我就可以按公共字段排序,并限制组合结果集在页面上显示

范例

Table 1
Field1 | Field2 | Field3 | date_posted
--------------------------------------
Blah   | Blah2  | Blah3  | 2013-02-01 


Table 2
Field4 | Field 5 | date_posted
------------------------------
Blah4  | Blah5   | 2013-01-01 


Result
Field1 | Field2 | Field3 | Field4 | Field5 | date_posted
--------------------------------------------------------
Blah   | Blah2  | Blah3  | NULL   | NULL   | 2013-02-01
NULL   | NULL   | NULL   | Blah4  | Blah5  | 2013-01-01
原因是我以前设置了一个数据库,将这些表显示在单独的页面上,现在客户端希望将它们合并到一个页面中。如果我单独运行查询,然后在php中组合数据,则会出现某些问题,例如分页以及必须选择每个查询的设置数量,即使它们不是最新的

无需连接:

select field1, field2, field3, null as field4, null as field5, date_posted
from table_1
union all
select null,   null,   null,   field4,         field5,         date_posted
from table_2
要按特定列排序,只需添加一个order by

请注意,在联合体中,order by始终作用于完整结果,而不是单个零件。因此,即使它被放置在第二次选择之后,它也会对所有内容进行排序

要使用LIMIT实现分页,无需连接:

select field1, field2, field3, null as field4, null as field5, date_posted
from table_1
union all
select null,   null,   null,   field4,         field5,         date_posted
from table_2
要按特定列排序,只需添加一个order by

请注意,在联合体中,order by始终作用于完整结果,而不是单个零件。因此,即使它被放置在第二次选择之后,它也会对所有内容进行排序

要使用LIMIT实现分页,请尝试以下操作:

select field1, field2, field3, null field4, null field5, date_posted from table1
union all
select null field1, null field2, null field3, field4, field5, date_posted from table2
SQL Fiddle:

尝试以下操作:

select field1, field2, field3, null field4, null field5, date_posted from table1
union all
select null field1, null field2, null field3, field4, field5, date_posted from table2

SQL FIDLE:

这将不起作用。联合体的两个部分具有不同的列数。hireSwish希望有6列,而不是3或4列。是的,我的错…你需要像你一样的空值。这不起作用。联合体的两个部分具有不同的列数。hireSwish希望有6列,而不是3或4列。是的,我的错…你需要像你一样的空值。@ArthurFrankel:应该使用哪个顺序?我在问题中看不到任何关于结果应该按特定列排序的引用,尽管从他的问题中按日期列排序可能是有意义的,这样我可以按公共字段排序,并限制组合结果集显示在页面上。我假设发布的日期是公共字段,因为它在整个页面上是公共的桌子。用who博士的话说,太棒了!。我知道这与union all有关,但无法克服表格字段数不一致的错误。谢谢大家!@亚瑟·弗兰克尔:应该使用哪一个订单?我在问题中看不到任何关于结果应该按特定列排序的引用,尽管从他的问题中按日期列排序可能是有意义的,这样我可以按公共字段排序,并限制组合结果集显示在页面上。我假设发布的日期是公共字段,因为它在整个页面上是公共的桌子。用who博士的话说,太棒了!。我知道这与union all有关,但无法克服表格字段数不一致的错误。非常感谢。