如果连续存在多个id存储,则加入多个表

时间:2016-04-07 10:11:10

标签: php mysql join

我在数据库中有三个表,即技能,job_post和经验。在这里,我必须加入所有这些表。

这里我有这样的job_post表:

enter image description here

技能表如下:

enter image description here

体验表看起来像

enter image description here

现在,我必须加入上表。我已加入job_post和经验表。

所以我写了连接查询,如:

xml

但是,这里有多个skill_id插入job_post表中,那么如何将job_post表加入技能表?

注意:我试过的是我在上面写了连接查询然后编写该结果的foreach循环并从job_post表中获取技巧ID。然后编写与技能表匹配的查询打印技巧。

但有没有办法编写查询而不是这些呢?

1 个答案:

答案 0 :(得分:2)

您可以使用MySQL find_in_setgroup_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