Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果一行中有多个id存储,则联接多个表_Php_Mysql_Join - Fatal编程技术网

Php 如果一行中有多个id存储,则联接多个表

Php 如果一行中有多个id存储,则联接多个表,php,mysql,join,Php,Mysql,Join,数据库中有三个表,分别是技能、职位和经验。在这里,我要加入这些所有的表 在这里,我有如下的工作岗位表: 技能表如下所示: 经验表看起来像 现在,我必须加入上表。这里我加入了工作岗位和经验表 因此,我编写了如下连接查询: "select * from job_post as jp join experience as e on e.exp_id = jp.exp_id where jp.emp_id in (".$ids.")" 但是,这里在job\u post表中插入了多个sk

数据库中有三个表,分别是技能、职位和经验。在这里,我要加入这些所有的表

在这里,我有如下的工作岗位表:

技能表如下所示:

经验表看起来像

现在,我必须加入上表。这里我加入了工作岗位和经验表

因此,我编写了如下连接查询:

"select * from job_post as jp 
  join experience as e on e.exp_id = jp.exp_id
  where jp.emp_id in (".$ids.")"
但是,这里在job\u post表中插入了多个skill\u id,所以如何将job\u post表连接到skill表

注意:我尝试的是写上面的连接查询,然后写该结果的每个循环,并从job\u post表中获取技能ID。然后写与技能表匹配的查询并打印技能


但是有什么方法可以编写查询而不是执行这些操作吗?

您可以使用MySQL
find\u in\u set
group\u 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

只需进行第二次连接。您可以在一个查询中联接多个表。@Styphon但是一个job\u post表中存储了多个技能,那么如何将job\u post表联接到技能表中呢?我根据技能得到了多条记录。我们可以不做这件事而专注于技能吗?所以我们可以得到单记录。谢谢它的工作。谢谢你给我很好的mysql知识