mysql - 如何使用查询生成器在三个表中进行查询?

标签 mysql laravel laravel-5.5 builder

我有三个表员工、技能和技术 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_skillsid_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,您可以命名为Name1Name2等。

请原谅我糟糕的英语。

关于mysql - 如何使用查询生成器在三个表中进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48511833/

相关文章:

mysql - 我的 mysql 查询是否正确? (好像不是)

mysql - 升级到 5.6.27 后 mysql 性能下降

php - 需要 Laravel DB 查询帮助

mysql - 使用 Laravel 5.5 在实时数据库上调用存储过程会引发内存错误

laravel - 覆盖现有的Blade指令

php - codeigniter 文件未上传到远程服务器

MySQL表称为DB.Table而不是Table?

php - 拉拉维尔。如何根据 Content-Type 定义路由

php - Laravel:忽略 412 错误页面

php - Laravel-5.5:未根据请求设置 session 存储