[英]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.