表A
id title content
1 标题1 内容
2 标题2 ……
3 标题3 ……
表B
aid tagid tagname
2 1 中国
1 2 美国
3 3 中国
3 4 香港
现使用 select a.* from a inner join b on a.id=b.aid where b.tagname='中国' and a.id not in (select aid from b where tagname='香港')
来选出tagname带有中国但不含有香港的A表数据
请问除了使用not in 还有其他更好的方法吗?