laravel中3张桌子的关系

时间:2017-02-20 14:56:10

标签: php mysql sql laravel query-builder

鉴于我有3个表:user,capabilitiess和competences_user,如何通过q​​uery-builder获取每个用户的技能列表?

表格结构:

  • user:id,nom ....
  • 能力:id,titre ......
  • compes_user:id,compe_id,user_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

1 个答案:

答案 0 :(得分:0)

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

即:

$users = DB::table('users')
        ->join('contacts', 'users.id', '=', 'contacts.user_id')
        ->join('orders', 'users.id', '=', 'orders.user_id')
        ->select('users.*', 'contacts.phone', 'orders.price')
        ->get();

回答你的问题:

$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();

您可以参考documentation了解更多详情。