mySQL でより複雑なクエリを作成する方法を学ぶのは非常に難しいと感じています。
この質問を通じて、単一のクエリ内でマルチレベルのクエリを開発する方法について、さらに洞察を得ることができれば幸いです。
私はタグ付けシステムを持っています。
tbl1: ktbridge
ktbridge_id
threads_id
keywords_id
tbl2: threads
threads_id
subject
etc
tbl3: keywords
keywords_id
keyword
related_id
以上が私の現在の設定です。
データについては、次のものがあります。
INSERT INTO `ktbridge` (`ktbridge_id`, `threads_id`, `keywords_id`) VALUES
(1, 1, 9);
INSERT INTO `keywords` (`keyword_id`, `keyword`, `related_id`) VALUES
(5, 'Sports', 0),
(6, 'Baseball', 5),
(7, 'football', 5),
(8, 'Curling', 5),
(9, 'Pitchers', 6),
(10, 'Catchers', 6),
INSERT INTO `threads` (`threads_id`, `subject`, `body`, `users_id`, `timestamp`, `replystamp`) VALUES
(1, 'Sports - Baseball - Pitchers - Subject', 'Sports - Baseball - Pitchers - Body', 1, '2013-01-09 14:09:40', '0000-00-00 00:00:00');
ここでの目標は、提供された keyword_id に関連するスレッドを返すことです。
難しいのは、「野球」を選択すると、野球のスレッドが返されることです。ただし、「sports」が選択されている場合は、テーブル内の「related_id」に基づいて、それより下のすべてのスレッドが返されkeywords
ます。したがって、野球、フットボール、およびカーリングに基づくすべてのスレッドが返されます。
これは可能性がありますか?それとも、複数のクエリが必要ですか? 前もって感謝します!