我有一些MYSQL查詢問題。我正在嘗試使用多個參數執行LEFT JOIN
。LEFT JOIN ManyToMany多個參數
DB結構:
一個士兵可以有多個標籤,這些標籤被分配給士兵用多對多關係
我的查詢是在用戶能夠添加搜索功能使用他/她想要尋找的一些標籤。到目前爲止,可以使用一個標籤進行搜索,但只要添加了多個標籤,查詢即使應該也不會返回結果。使用
查詢:
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;
有沒有人有一個想法,我可以解決這個問題?提前
當用戶輸入多個標籤時,您想要什麼邏輯?你想*任何*標籤匹配或*所有*標籤匹配? –
所有標籤都應該匹配,例如如果用戶輸入2個標籤,士兵應該有tag1和tag2匹配 – kwinne