我有以下表格:
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'
哪个好,我明白在查询的其他部分之前运行的地方。那么我尝试这个查询:
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子句中“创建”的列是不明确的
有关如何更改查询的任何建议,以便没有任何问题吗?
答案 0 :(得分:0)
通过将items.created包装在引号中,它被解释为名为“items.created”的列,而不是items表中创建的列。以下应该有效。
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