'menu_item_id' = 1を含む't'(スレッド)からすべてのアイテムを返す必要があります。
さらに、f.tagに基づいて上記のすべての結果をフィルタリングする必要があります。
SELECT t.*, u.username AS owner, uu.username AS replyname, a.location
FROM thread t
INNER JOIN filter_thread as ft ON t.thread_id = ft.thread_id
INNER JOIN filter as f ON f.filter_id = ft.filter_id
INNER JOIN users u ON t.owner_id = u.id
INNER JOIN users uu ON t.last_post_id = uu.id
INNER JOIN user_profiles AS up ON u.id = up.user_id
INNER JOIN avatars AS a ON up.avatar_id = a.id
WHERE t.menu_item_id='1'
AND f.tag LIKE '%hello%'
OR f.tag LIKE '%world%'
問題のある領域:AND f.tag LIKE '%hello%'
OR f.tag LIKE '%world%'
理解しておくべき重要なことは、「hello」と「world」が常にクエリに含まれているとは限らないということです。さらに、さらに3つの検索が追加される可能性がありますが、menu_item_id
常に検索されます。
すべての結果に各f.tagが必要なわけではなく、結果にそれらのいずれか(OR)を含めるだけです。
どんな助けでもいただければ幸いです。