SQL从多个表中获取数据

时间:2013-07-09 15:32:00

标签: php mysql sql innodb

我有3个表,都有一些文章:文章,专栏和报告。所有表都有一个名为date的列,其中包含添加记录时的Unix时间戳。

现在,我想获取文章,列和报告表中最近添加的50条记录,并将它们列在网页上。由于文章和列可以具有相同的唯一ID,因此还需要知道哪个结果来自哪个表,以链接到完整的文章(www.webpage.com/article/12或www.webpage.com/column例如/ 12)。

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

坦率地说,最好的方法可能是将元素拉入不同的变量。无论如何,如果您想一次性完成所有操作,可以选择以下方法:

SELECT a.date, a.title, 'ARTICLE' category
FROM articles a
WHERE date > :date
UNION ALL
SELECT date, title, 'COLUMN' category
FROM columns
WHERE date > :date
UNION ALL
SELECT date, title, 'REPORT' category
FROM reports
WHERE date > :date

无论如何都是这样的。我们的想法是,您可以在每个子选择语句中包含一个引用源表的标志。