我有两个代表帖子及其类别的表格。
这是一个简化的表模式:
posts post_categories
----- ----------------
-id -post_id
-title -cat_id
-text
我需要获取所有不属于“5”类别的帖子:
SELECT * FROM `posts` WHERE id NOT IN( SELECT id FROM `posts`,
`post_categories` AS cat WHERE cat.cat_id=5 AND posts.id=cat.post_id )
我正在使用子查询,因为帖子不能属于任何类别,所以如果我做一个简单的:
cat_id!=5 AND posts.id=post_id
我不会得到那些没有类别的帖子。
有比做子查询更好的方法吗?