私はこれをあまりにも長い間見てきたので、ロジックのすべての容量を失いました. ポインター/ヘルプは大歓迎です。
以下のように 3 つのテーブルがあり、重要な列があります。
表: カテゴリ
+------+--------------+ | | 猫ID | 猫の名前 | +------+--------------+ | | 1 | 誰かの名前 | | | 2 | 文字列名 | | | 3 | サードキャット | | | 4 | ストリングキャット | | | 5 | ストリングその他 | | | 6 | シックスキャット | +------+--------------+
表: 製品
+-----+------+ | | pID | pCat | +-----+------+ | | 22 | 1 | | | 33 | 1 | | | 44 | 7 | | | 55 | 9 | +-----+------+
表: 製品
+-----+-------+ | | pID | 猫ID | +-----+-------+ | | 22 | 2 | | | 22 | 6 | | | 33 | 3 | | | 33 | 5 | | | 44 | 3 | | | 44 | 6 | | | 55 | 5 | | | 55 | 6 | +-----+-------+
カテゴリ ID のリストがあります。このリストを使用して、catName に特定の文字列を含むカテゴリを返す必要があります。
(カテゴリから) 次の場合に、このリストにカテゴリを追加します。
catName LIKE %string% AND catID IN ($mycats)
明らかに問題はありません。
ただし、カテゴリ 2 と 5 (「文字列」を含む) も返す必要がありますが、それらが (prodcats で) 2catID 1 の製品に関連している場合のみです。
そこで頭が壊れました。
次のことを知っておくと役立つ場合があります。
- $mycats の ID は、製品テーブルの pCat として発生する場合と発生しない場合があります。
- $mycats には 1 つまたは 2 つの項目しかありません。2 つある場合、1 つは探している文字列を名前に含む猫であり、2 つ目は決してありません。
編集: - これを明確にするために、上記のサンプル テーブル データと以下の例を追加しました。
例: $mycats=1,4
catID 4 を取得する必要があります。その名前には両方とも「string」が含まれています。それは簡単なビットです。
しかし、catID 2 と 5 も取得したいと考えています。これらにも文字列が含まれており、$mycats にはありませんが、製品の catID 1 にあるテーブル prodcats の pID に関連付けられているためです。
それが少し明確になることを願っています。この時点で、私には泥のようなものです。