1

我有以下表格:

users: id, username, password, created, modified
posts: id, user_id, message, created, modified

我正在尝试运行一个查询,以获取今天创建的最后 5 个帖子(以及发布者的用户名)。当我运行以下查询时:

SELECT users.username, posts.*
FROM postsLEFT OUTER JOIN users ON (posts.user_id=users.id)
WHERE (DATE(`posts.created`) = DATE(NOW()))
ORDER BY posts.created DESC
LIMIT 5

我收到消息:

'where 子句'中的未知列'posts.created'

很好,我知道 where 在查询的其他部分之前运行。那么我试试这个查询:

SELECT users.username, posts.*
FROM postsLEFT OUTER JOIN users ON (posts.user_id=users.id)
WHERE (DATE(`created`) = DATE(NOW()))
ORDER BY posts.created DESC
LIMIT 5

但我当然得到消息:

where 子句中的“创建”列不明确


关于如何更改查询以便没有任何问题的任何建议?

4

1 回答 1

0

通过将 items.created 包装在引号中,它被解释为名为“items.created”的列,而不是 items 表中的 created 列。下面应该工作。

SELECT users.username, items.*
FROM items LEFT OUTER JOIN users ON (items.user_id=users.id)
WHERE (DATE(items.created) = DATE(NOW()))
ORDER BY items.created DESC
LIMIT 5
于 2012-12-09T00:59:40.487 回答