laravel 中 3 个表的关系
relationship of 3 tables in laravel
鉴于我有 3 个表:用户、能力和 competences_user,我如何使用查询构建器获取每个用户的技能列表?
Table 结构:
- 用户:id, nom....
- 能力:身份证、职称...
- competences_user : id, competence_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
有很多方法可以做到这一点,没有查询生成器的简单方法:
即:
$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
鉴于我有 3 个表:用户、能力和 competences_user,我如何使用查询构建器获取每个用户的技能列表?
Table 结构:
- 用户:id, nom....
- 能力:身份证、职称...
- competences_user : id, competence_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
有很多方法可以做到这一点,没有查询生成器的简单方法:
即:
$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