Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 laravel中3个表的关系_Php_Mysql_Sql_Laravel_Query Builder - Fatal编程技术网

Php laravel中3个表的关系

Php laravel中3个表的关系,php,mysql,sql,laravel,query-builder,Php,Mysql,Sql,Laravel,Query Builder,假设我有3个表:用户、能力和能力\用户,如何使用查询生成器获得每个用户的技能列表 表结构: 用户:id,nom 能力:身份证,乳头 能力\用户:id,能力\ id,用户\ id 以下是我迄今为止所尝试的: select user.id, user.nom, competences.titre FROM user Inner Join competences_user ON = competences_user.competence_id AND user.id = compe

假设我有3个表:用户、能力和能力\用户,如何使用查询生成器获得每个用户的技能列表

表结构:

  • 用户:id,nom
  • 能力:身份证,乳头
  • 能力\用户:id,能力\ id,用户\ id
以下是我迄今为止所尝试的:

select user.id, user.nom, competences.titre
FROM user
  Inner Join competences_user 
     ON = competences_user.competence_id AND user.id = competence_user.user_id
  Inner Join competences
     ON competences.id = competence_user.competence_id

有很多方法可以做到这一点,没有查询生成器的简单方法是:

即:

回答你的问题:

$users = DB::table('users')
        ->join('competences_user', 'competences_user.user_id', '=', 'users.id')
        ->join('competences', 'competences_user.competence_id', '=', 'competences.id')
        ->select('users.*', 'competences.titre')
        ->get();

有关更多详细信息,请参阅。

@Nablie Internal Join Competencies\u user ON=Competencies\u user.Competency\u id为什么这里会有这个=?我重新编写了问题并重新设置了格式,以便于阅读。我还分解了查询代码,这样就不需要侧滚来读取它。@Fadil它可以工作,但显然有必要将查询分隔为2,因为每个用户都有多个技能。不需要,如果存在,查询将返回多行。谢谢,测试后我会回来@nabil您还可以通过使用
DB::table('competencies')->join(…)->join(…)->select(…)->where('user.id','=','1')
获取数据。例如,请提供更多详细信息,并提供示例
$users = DB::table('users')
        ->join('competences_user', 'competences_user.user_id', '=', 'users.id')
        ->join('competences', 'competences_user.competence_id', '=', 'competences.id')
        ->select('users.*', 'competences.titre')
        ->get();