我有一些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