php - 在 MySQL 中,如何从两个不同的表中选择 *?
问题描述
我在 MySQL 上有两个单独的表,我想进行查询,从它们中选择 * 并且我想按 id(或日期)对它们进行排序。问题是 id 会发生冲突,因为会有两篇具有相同 id 的文章(每个表中的一篇)。
有没有一种方法可以在一个查询中显示每个表的所有文章?
编辑:
它们的列数不同。但是,我将选择它们每个的相同列。所以我会从table1和table2中选择“id、map、title、summary、image、date、publish”。(因为两个表都有完全相同的列)。
然后我想在一个网页上显示 table1 和 table2 中的所有文章。在完全相同的网格中。
这甚至可能还是我需要在 MySQL 中合并两个表?
解决方案
如果两张表的列数相同且对应列的数据类型相同,则可以使用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
推荐阅读
- java - Selenium IDE(谷歌浏览器扩展)中的正则表达式不起作用
- java - Jython:在 Java 中运行 Python 脚本——设置 PYTHONPATH?
- java - 当它满足 if 语句时,如何将一个整数与另一个整数相加?
- python - 使用烧瓶和本地 JSON 文件在 HTML 中显示 JSON
- mysql - mysql left join with group_concat - 只显示一个结果
- faunadb - 无法使用 FaunaDB 中的特定用户登录
- vb.net - 在 EXE 所在的文件夹中创建文档 (VB)
- c# - 具有不同泛型类型参数的继承类不可强制转换
- html - 在 HTML 中使文本字符串具有一定长度的最简单方法
- java - Log4j2:更改特定用户和特定记录器的日志级别:未按预期工作