mysql - 从 MySql 中的多个表中获取最后几行?

标签 mysql sql join limit

过去几个小时我几乎陷入了 Sql 查询。我需要从四个表中获取最新的一些元素,如下所示。 表名称为 -- events 、 contactinfo 、 video 、 news

我需要事件和新闻的最后 3 个结果以及视频和联系信息的最后一个结果..

我尝试了以下查询,但正如预期的那样,它没有起作用..

SELECT  * FROM 
((SELECT * FROM EVENTS ORDER BY eventid DESC LIMIT 3)EV) INNER JOIN
((SELECT * FROM NEWS ORDER BY newsid DESC LIMIT 3)NE) INNER JOIN
((SELECT * FROM VIDEOS ORDER BY videoid DESC LIMIT 1)VI) INNER JOIN
((SELECT * FROM CONTACTINFO ORDER BY cid DESC LIMIT 1)AB);

实际上我不是数据库专家,我是开发人员,而且我对 MySql 真的了解不多。 任何帮助将不胜感激。

最佳答案

如果这些表具有相同的列,您可以执行 UNION(而不是 INNER JOIN)。如果没有,我建议进行 4 次查询。

JOIN 表明连接的数据相互关联,如果情况并非如此,则执行 JOIN 接缝就像错误的解决方案。

关于mysql - 从 MySql 中的多个表中获取最后几行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19890971/

相关文章:

php - 我可以在 PHP 中混合使用 MySQL API 吗?

mysql - 我的架构中是否需要第三个表

php - PDO 模拟关闭,多次绑定(bind)相同的值

SQL - 如何使用另一个表中的计数进行排序

sql - 如何检查特定列是否为空然后忽略查询的某些部分

mysql - 在这种情况下什么是合适的查询

mysql - SQL 首先按字母顺序排序,然后通过自定义 bool 列排序

SQLite 删除表别名

mysql - 连接同一个表两次并按同一列排序

mysql - 加入/排序运行缓慢