![](/img/trans.png)
[英]Join SQL query that has single id/row in 1 table, but links to multiple rows(same id) in another table?
[英]Join multiple table if there are multiple id store in a row
我在數據庫中有三個表,即技能,job_post和經驗。 在這里,我必須加入這些所有表格。
這里我有這樣的job_post表:
技能表看起來像:
體驗表看起來像
現在,我必須加入上面的表。我已經加入了job_post和經驗表。
所以我寫了連接查詢,如:
"select * from job_post as jp
join experience as e on e.exp_id = jp.exp_id
where jp.emp_id in (".$ids.")"
但是,這里有多個skill_id插入job_post表中,那么如何將job_post表連接到技能表呢?
注意:我嘗試的是我已經在上面寫了連接查詢然后編寫該結果的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.