【发布时间】:2011-07-22 13:11:05
【问题描述】:
我不想在这里使用任何类型的JOIN。我正在使用 PHP 构建两个表的 RSS 提要,我想从两个表中选择所有行,保持行分开但按公共 created 列排序。
例如,如果我有一张桌子foo:
id downloads views created
-----------------------------------------------
1 12 23 2011-07-22 00:10:16
2 51 900 2011-07-22 10:11:45
3 8 80 2011-07-23 04:12:18
还有一张桌子bar:
id title body created
-----------------------------------------------
1 foo ogblog 2011-07-21 10:54:07
3 bar zip 2011-07-24 10:54:07
4 zip bar 2011-07-25 10:54:07
我想从按公共created 列排序的两个表中选择所有数据,因此示例结果集将是(忽略bar.id,因为它不需要):
id title body downloads views created | table
-------------------------------------------------------------------------------
NULL bar zip NULL NULL 2011-07-24 10:54:07 | bar
NULL foo ogblog NULL NULL 2011-07-21 10:54:07 | bar
1 NULL NULL 12 23 2011-07-22 00:10:16 | foo
2 NULL NULL 51 900 2011-07-22 10:11:45 | foo
3 NULL NULL 8 80 2011-07-23 04:12:18 | foo
NULL zip bar NULL NULL 2011-07-25 10:54:07 | bar
不需要table 列;我添加它是为了让事情更容易理解。
希望我想做什么很明显;而不是做一个JOIN,其中一行是从两个表的列生成的,我想用一个通用的列布局获取所有行数据,其中表中不存在的任何列都有NULL放入其中。
如果您需要澄清,请告诉我。
【问题讨论】:
-
UNION ALL听起来像您需要的(使用虚拟列来解决结构差异)
标签: mysql