带外键的SQL条件

我有两个表BOOKS和KEYWORDS。它们受外键约束。

BOOKS的结构(书号,名称,作者)

关键字结构(关键字ID,关键字Word,图书ID)

现在我想买些书,这取决于关键字是什么。我创建了这样的命令,但未显示任何结果。

select * from BOOKS 
JOIN KEYWORDS ON BOOKS.Book_Id = KEYWORDS.Book_Id 
where Author like '%a%' and KEYWORDS.Key_Word like '%a%';

我做错了什么? 提前致谢。 样本数据(抱歉,该外语)

带外键的SQL条件

带外键的SQL条件

编辑:已解决,但我无法删除此问题。

iffta 回答:带外键的SQL条件

如果作者姓名和关键字匹配,我会感到惊讶。我想您只是想or询问一下他:

select *
from BOOKS b join
     KEYWORDS k
     on b.Book_Id = k.Book_Id 
where b.Author like '%a%' or
      k.Key_Word like '%a%';
,

我们可以使用CTE更好地简化它。

with selected_keywords (book_id) as (
        select book_id from KEYWORDS
        where keyword like '%'
  ),select * from book 
  where book_id in (select book_id from selected_keywords)

我们可以避免加入和过滤大型数据集。

P.S:查询所写内容。

本文链接:https://www.f2er.com/3132782.html

大家都在问