小编tru*_*rue的帖子

使用INNER JOIN排除MYSQL查询结果

我有两张桌子.第一本是满满的书籍book_id.第二个表是一个book_idkeyword_id关系表.

SELECT b.* FROM books_table b 
INNER JOIN keywords_table k 
ON b.book_id = k.book_id AND k.keyword_id NOT IN(1,2,3)
WHERE b.is_hardcover = 1 
GROUP BY b.book_id
Run Code Online (Sandbox Code Playgroud)

期望的结果

没有任何书籍附有keyword_id 1,2或3的书籍.

实际结果

书籍可以包含关键字1,2或3,只要它们附加了其他不在排除列表中的keyword_ids即可.

我试过的

上面的查询是我最接近实现它的问题,但在这方面它失败了.

如何以最优化的方式实现预期结果?

mysql sql select subquery

5
推荐指数
1
解决办法
103
查看次数

标签 统计

mysql ×1

select ×1

sql ×1

subquery ×1