按id从多个表中提取,并按创建日期排序


Extracting from multiple tables by id and ordering by created date

我试图用一个查询提取用户的活动。我需要用一个查询来完成,这样我就可以使用zend-paginator了。

我有5个表:usersrepliesthreadswiki_articleswiki_article_revisions。每个表有两个公共列created_bycreated_on

我尝试过使用left join,但我认为它返回的内容不正确,并且我无法通过created_on 订购所有活动

这是我尝试过的加入:

SELECT * FROM `users` u
LEFT join `replies` r ON u.id = r.created_by
LEFT join `threads` t ON u.id = t.created_by
LEFT join `wiki_articles` wa ON u.id = wa.created_by
LEFT join `wiki_article_revisions` war ON u.id = war.created_by
WHERE (u.`name` = 'CGeorges') 

我的思考过程是错误的。我应该用UNION来做这个,比如:

(SELECT id, name, created_on FROM users WHERE id = 1)
UNION
(SELECT id, name, created_on FROM threads WHERE created_by = 1)
UNION
(SELECT id, content, created_on FROM replies WHERE created_by = 1)
UNION
(SELECT id, title, created_on FROM wiki_articles WHERE created_by = 1)
ORDER by created_on DESC