我想使用 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
只是不清楚,通过删除AND
条件,我得到了结果,尽管所有行都符合post
预期。此外,以下查询
SELECT count(post.id)
FROM post
WHERE datetime(post.published) < datetime('2012-08-08 12:42:41.696451')
提供正确的结果。
编辑 2
标签表中存在数据输入错误。查询现在工作正常。向大家道歉。投票删除。