我在MySQL上有两个单独的表,我想在查询中从两个表中选择*,然后按ID(或日期)对它们进行排序。问题在于id的冲突,因为会有两篇文章具有相同的id(每个表中有一个)。
有没有一种方法可以在一个查询中显示每个表的所有文章?
编辑:
它们没有相同数量的列。但是,我将为每个选择相同的列。因此,我将从table1和table2中选择“ id,地图,标题,摘要,图像,日期,发布”。 (因为两个表都具有完全相同的列)。
然后,我想在一个网页上显示来自table1和table2的所有文章。在完全相同的网格中。
这甚至有可能还是我需要在MySQL中合并两个表?
答案 0 :(得分:1)
如果2个表的列数相同,并且相应列的数据类型相同,则可以使用UNION ALL:
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
ORDER BY id
如果您还想区分行,以便知道它们来自哪个表,则可以为每个行创建一个虚拟的第一列,如下所示:
SELECT '1' fromtable, * FROM table1
UNION ALL
SELECT '2' fromtable, * FROM table2
ORDER BY id