我有三个表员工、技能和技术 tables
=====================
| employe |
=====================
|id_employe |
|name |
|id_skill |
=====================
| skills |
=====================
|id_skill |
|Id_technologie |
=====================
=====================
| technologies |
=====================
|id_technologie |
|name |
=====================
在每个表中我都有这些 records
employe
=============================
|id_employe|name |id_skill |
=============================
|1 |jhon |1 |
|2 |tom |2 |
skill
=============================
|id_skill | id_technologie |
=============================
|1 | 1 |
|1 | 2 |
|2 | 1 |
|2 | 4 |
technologies
============================
|id_technologie| name |
============================
|1 | PHP |
|2 | Java |
|3 | Python |
|4 | C |
我想要得到这样的结果 this
=============================================
id_employe| name | id_skill| name | name
=============================================
1 | jhon | 1 | PHP | Java
我尝试这样做,但结果不是我所期望的
function listar(){
$users = DB::table('employe')
->join('skills', 'skills.id_skill', '=', 'employe.id_skill')
->join('technologies', 'technologies.id_technologie', '=', 'skills.id_technologie')
->where('skills.id_skill', '=', 1)
->get();
return response()->json($users,200);
}
<小时/>
最佳答案
原文:
您确定输入了正确的列吗?
我在你的图片中看到的是 id_skills
和 id_technologie
。
DB::table('employe')
->join('skills', 'skills.id_skills', '=', 'employe.id_skills')
->join('technologies', 'technologies.id_technologie', '=', 'skills.id_technologie')
->where('skills.id_skills', 1)
->get();
新:
您希望 1 行中有 2 个结果。
并通过1条查询SQL。
您不知道有多少技术
与一项技能
相关。
我认为解决的方法是先选择技能
。
然后找到technologie
,您可以命名为Name1
、Name2
等。
请原谅我糟糕的英语。
关于mysql - 如何使用查询生成器在三个表中进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48511833/