2

我对 SQL 有疑问,我解释一下:

我有 2 张桌子

公告工作

公告_教育

您可以在下面看到表格的预览

公告_教育 公告_教育

公告工作 公告工作

我认为我的数据库结构不是很好......但为时已晚!(忘记我的数据类型,实际上是胡说八道),我是坏人吗?

所以:你怎么能得到最后 5 条记录 ORDER BY insert_db_date (这两个表之间)?

-> 如果不可能,您有其他解决方案吗?

提前致谢 ;)

4

1 回答 1

1

在选择之前,您需要将订单应用到您的列。也就是说,假设您尚未添加总是最新的条目。但最好是安全而不是抱歉!

SELECT * FROM announcements_education ORDER BY DESC insert_db_date LIMIT 5;

分别:

SELECT * FROM announcements_job ORDER BY DESC insert_db_date LIMIT 5;

您必须指定按降序排序,因为默认ORDER BY将按升序排序。该LIMIT语句将确保您只返回前五个条目。由于您的表格是按从最新条目数据到最新的顺序排列的,因此仅显示最近的五个。

更新:

我稍微误读了你的问题。如果你想在两个表中都获得前 5 名,下面的代码就是你想要的。

(SELECT * FROM announcements_education ORDER BY DESC insert_db_date)
UNION ALL
(SELECT * FROM announcements_job ORDER BY DESC insert_db_date)
LIMIT 5

让我知道它有效!

于 2013-02-05T07:05:06.190 回答