我有3张桌子(articlestbl,businesstbl,photostbl)。现在,我想在ONLY ONE查询中为每个表获取前2个最新记录。这些表彼此无关(没有外键)。是否可以这样做?如果是的话,该怎么做。感谢。
articlestbl
art_id art_description art_date 1 article1 2014-06-02 2 article2 2014-06-01 3 article3 2014-06-02
businesstbl
bus_id bus_description bus_date 1 business1 2014-05-09 2 business2 2014-06-01 3 business3 2014-06-02
photostbl
p_id p_description p_date 1 photos1 2014-05-09 2 photos2 2014-04-01 3 photos3 2014-03-02
行结果应为
第一条
第三条
业务2
business3
photos1
photos2
答案 0 :(得分:0)
使用UNION ALL
:
SELECT * FROM articlestbl ORDER BY art_date DESC LIMIT 2
UNION ALL SELECT * FROM businesstbl ORDER BY bus_date DESC LIMIT 2
UNION ALL SELECT * FROM photostbl ORDER BY p_date DESC LIMIT 2
但是你需要从三个不同的表中读取这一事实可以暗示设计问题。你在这里做的事情看起来像Class Table Inheritance,考虑调查Single Table Inheritance更有效率