MYSQLクエリにいくつか問題があります。私は複数のパラメータでLEFT JOIN
をやろうとしています。LEFT JOIN ManyToMany複数のパラメータ
DB構造:
兵士が複数のタグを持つことができ、これらのタグは、多対多の関係
で兵士に割り当てられている私のクエリは、ユーザーが追加することができ、検索機能で使用されています彼/彼女が探しているいくつかのタグ。これまでのところ、1つのタグで検索することは可能でしたが、複数のタグを追加するとすぐに、クエリは結果を返しません。
使用クエリ:
SELECT *
FROM soldiers s LEFT JOIN
soldier_tag st
ON s.id = st.soldier_id
WHERE st.tag_id = 5;
ユーザーが2個のタグを入力すると、その後、両方のタグが数学する必要があります。クエリは次のようになります。
SELECT *
FROM soldiers s LEFT JOIN
soldier_tag st
ON s.id = st.soldier_id
WHERE st.tag_id = 5 AND st.tag_id = 7;
この問題をどのように修正できるのでしょうか?事前
ユーザーが複数のタグを入力したときにどのようなロジックが必要ですか? * any *タグが一致するか、* all *タグが一致するようにしますか? –
すべてのタグが一致する必要があります。たとえば、ユーザーが2つのタグを入力した場合、兵士は一致させるにはtag1とtag2が必要です。 – kwinne