【发布时间】:2011-09-21 03:51:09
【问题描述】:
所以基本上我会在我的网站上收到有关新内容的通知。我有 4 张桌子 -
- 文章
- 媒体
- 更新
- cmets
每个表都有一组自己的列(如果有人愿意,我可以包含这些列)。每个表都有一个不同的列,这是 timestamp 列(一个 big int 格式的列,其中包含来自 PHP time() 函数的数据)。我获得最后 30 次修改的解决方案是从这 4 个按时间戳降序排列的表中选择前 30 行。
这是我到目前为止的查询,它不起作用,我想知道是否有人可以帮助我。 -
SELECT * FROM `articles`
UNION SELECT * FROM `media`
UNION SELECT * FROM `updates`
UNION SELECT * FROM `comments`
ORDER BY `timestamp` DESC
LIMIT 30
编辑: 我之前也使用过另一个查询 -
SELECT * FROM `articles` ,`media` ,`updates` ,`comments`
ORDER BY `timestamp` DESC
LIMIT 30
并不断收到此错误 - 订单子句中的“时间戳”列不明确
编辑 2
我现在意识到我必须在我的语句中使用 AS 子句将这些结果合并到一个表中。
【问题讨论】:
-
当您说“它不起作用”时,您应该始终指定它“不起作用”的症状 - 它是否会产生错误消息(如果是,确切的消息是什么) ?它会给你结果,但不是你想要的结果(如果是,它会给你什么结果does)?等等。
-
UNION 仅适用于表具有相同字段的情况,如果每个表具有不同的字段集,则会出现错误
标签: php sql content-management-system