長い時間がかかるクエリがあり、それを行うためのより良い方法があるかどうか疑問に思っていましたか? おそらく結合で?
現在、長すぎる 2.5 秒ほどかかっています。
構造を少し説明すると、製品、「テーマ」、および「カテゴリ」があります。製品には、任意の数のテーマまたはカテゴリを割り当てることができます。themeitems および categoryitems テーブルは、カテゴリ/テーマ ID を製品 ID にリンクするためのリンク テーブルです。
少なくとも 1 つのテーマとカテゴリを持つすべての製品のリストを取得したいと考えています。現時点で私が持っているクエリは以下のとおりです。
SELECT *
FROM themes t, themeitems ti, products p, catitems ci, categories c
WHERE t.ID = ti.THEMEID
AND ti.PRODID = p.ID
AND p.ID = ci.PRODID
AND ci.CATID = c.ID
クエリを実行するときに必要な行のみを実際に選択していますが、少し抽象化するためにそれを削除しました。
正しい方向への助けは素晴らしいでしょう!
編集:以下の説明