我在数据库中有三个表,分别是 skill、job_post 和 experience。在这里,我必须加入这些所有表。
我这里有这样的 job_post 表:
技能表如下:
经验表看起来像
现在,我必须加入上面的表。这里我加入了 job_post 和 experience 表。
所以我写了这样的连接查询:
"select * from job_post as jp
join experience as e on e.exp_id = jp.exp_id
where jp.emp_id in (".$ids.")"
但是,这里在 job_post 表中插入了多个 skill_id,那么我如何将 job_post 表连接到 skill 表呢?
注意:我试过的是,我在上面写了连接查询,然后写了该结果的 foreach 循环,并从 job_post 表中获取技能 ID。然后写了与技能表匹配的查询,并且打印技巧。
但是有什么方法可以编写查询而不是执行这些操作吗?
最佳答案
您可以使用 MySQL find_in_set
和 group_concat
进行第三次连接:
select jp.*,e.*,group_concat(s.skill)
from job_post jp
join experience e on e.exp_id = jp.exp_id
join skill s ON(FIND_IN_SET(s.skill_id, jp.skill) > 0)
where jp.emp_id in (".$ids.")
GROUP BY jp.job_id,jp.exp_id
关于php - 如果一行中有多个id存储,则连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36473048/