我尝试到处搜索,但未找到任何答案。

我在数据库中有两个不同的表,只有两个相同的列(名称,dateChanged),实际上还有许多其他表,这两个表都不同。我希望从两个表中获取最新的X更新(以后从更多表中获取),但是我找不到解决方法。我的意思是

SELECT `name`, `dateChanged` FROM `mpolymer`, `mmetal` ORDER BY `dateChanged` DESC LIMIT 0,10


以显示最新活动的快速摘要。我尝试了UNION,JOIN,但是所有这些都需要连接到某个公共列上,这是不可能的(我认为)。请问您有可能做我想做的事吗?

最佳答案

假设您要在两个表中都保留最后的X个事件(而不是一个表中的X个事件,另一个表中的X个事件),那么这应该对您有用。

SELECT name, dateChanged FROM mpolymer
UNION
SELECT name, dateChanged FROM mmetal
ORDER BY dateChanged DESC limit 10;


DEMO

还显示表名(根据您的评论)…

SELECT name, dateChanged, 'mpolymer' AS tableName FROM mpolymer
UNION
SELECT name, dateChanged, 'mmetal' AS tableName FROM mmetal
ORDER BY dateChanged DESC limit 10;


DEMO

关于mysql - MySQL:从两个完全不同的表中选择最后一个更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23370380/

10-13 00:44