我在 MySQL 上有两个单独的表,我想进行一个查询,从这两个表中选择 *,并且我想按 id(或日期)对它们进行排序。问题是 id 会发生冲突,因为将有两篇具有相同 id 的文章(每个表中一篇)。
有没有一种方法可以在一个查询中显示每个表的所有文章?
编辑:
它们的列数不同。但是,我将选择每个列中的相同列。所以我会从表 1 和表 2 中选择“id、 map 、标题、摘要、图像、日期、发布”。 (因为两个表都有完全相同的列)。
然后我想在一个网页上显示 table1 和 table2 中的所有文章。在完全相同的网格中。
这是否可能,或者我是否需要合并 MySQL 中的两个表?
最佳答案
如果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
关于php - 在MySQL中,如何从两个不同的表中选择*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55725967/