簡體   English   中英

SQL 條件與外鍵

[英]SQL condition with foreign key

我有兩個表書和關鍵字。 它們受外鍵約束。

BOOKS 的結構(Book_Id、姓名、作者)

KEYWORDS 的結構(Key_Id、Key_Word、Book_Id)

現在我想買一些書,這取決於關鍵字是什么。 我創建了這樣的命令,但它沒有顯示任何結果。

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

我做錯了什么? 提前致謝。 示例數據(對不起,外語) 圖書 關鍵詞

編輯:已經解決,但我不能刪除這個問題。

如果作者姓名和關鍵字匹配,我會感到驚訝。 我認為您只是想要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)

我們可以避免加入和過濾大型數據集。

PS:查詢寫的有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM