在MySQL中,如何从两个不同的表中选择*?

时间:2019-04-17 10:57:32

标签: php mysql

我在MySQL上有两个单独的表,我想在查询中从两个表中选择*,然后按ID(或日期)对它们进行排序。问题在于id的冲突,因为会有两篇文章具有相同的id(每个表中有一个)。

有没有一种方法可以在一个查询中显示每个表的所有文章?

编辑:

它们没有相同数量的列。但是,我将为每个选择相同的列。因此,我将从table1和table2中选择“ id,地图,标题,摘要,图像,日期,发布”。 (因为两个表都具有完全相同的列)。

然后,我想在一个网页上显示来自table1和table2的所有文章。在完全相同的网格中。

这甚至有可能还是我需要在MySQL中合并两个表?

1 个答案:

答案 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