我想使用SQLite来计算多对多关系(tag-tags-post)中表的一行的子集。我曾尝试下面的SQL没有运气:限制多个表加入的内容
SELECT tag.*, count(post.id)
FROM tag
JOIN tags
ON tag.id = tags.tag_id
JOIN post
ON post.id = tags.post_id
AND datetime(post.published) < datetime('2012-08-08 12:42:41.696451')
GROUP BY tag.id, tag.name, tag.description, tag.slug
ORDER BY tag.name
我曾尝试移动条件为WHERE
条款但这改变不了什么。没有条件,结果如预期显示。
编辑1
就OT是明确的,通过移除AND
条件我得到的结果,尽管与post
所有行,符合市场预期。此外,以下查询
SELECT count(post.id)
FROM post
WHERE datetime(post.published) < datetime('2012-08-08 12:42:41.696451')
提供正确的结果。
EDIT 2
有没有在标签表中的数据录入错误。该查询现在工作正常。向所有人道歉。投票删除。
你不能做WHERE GROUP BY。我认为这是一个错字? – podiluska 2012-08-08 13:00:55
确实,我已经删除了那个。谢谢。 – NobRuked 2012-08-08 13:05:08
@ypercube没有返回结果。 – NobRuked 2012-08-08 14:22:28