多重連結データ検索

トピック作成者:ks-solruserml-bot (2025/03/01 23:03 投稿)
9
(The bot translated the original post https://lists.apache.org/thread/5k9ffxsc1k21vv21v8nmq0yypw1wpnyt into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
こんにちは、皆さん。
明確な解決策がありそうな質問なのですが、どこを探しても答えが見つかりません。
本と著者のデータベースがあるとします。各本には複数の著者がいる可能性があり、各著者は複数の本を執筆している場合があります。本のタイトルと著者名の両方を同時に検索し、キーワードが本のタイトルまたは著者名のどちらに含まれていても、本とその著者のリストを結果として表示したいと考えています。
SQLで表現すると、次のようなクエリになります。
SELECT *
FROM books, books_authors, authors
WHERE
books.id = books_authors.bookid
AND books_authors.authorid = authors.id
AND ( books.title LIKE :search_key OR authors.name LIKE :search_key )
私が思いつく唯一の方法は、まず検索を実行して該当する本と著者を取得し、その後、最初のクエリで見つかった本や著者に関連するすべての本と著者を取得するために別のクエリを実行することです。
これをより賢く実現する方法はあるでしょうか?ベストプラクティスがあれば教えてください。
トピックへ返信するには、ログインが必要です。