【发布时间】:2013-11-10 14:38:20
【问题描述】:
从过去几个小时开始,我几乎陷入了 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 真的不太了解。 任何帮助将不胜感激。
【问题讨论】:
-
完整的外部联接可能会为您提供答案。
-
INNER JOIN 只返回在表达式的 ON 子句中指定了相等键的行。
-
@Dan Bracuk 你的意思是说我应该用 FULL OUTER JOIN 替换内部联接 ..
-
用完整的外部联接替换内部联接让您开始。您必须对那些 select * 做一些事情,以使您的结果集更具可读性。