MySQL - 在Eloquent中将其合并为一个查询?

时间:2015-08-16 17:38:18

标签: mysql laravel eloquent

给出以下模式:

user
   - id
   - username

friends
   - user_id
   - friend_id

places
   - id
   - name

place_user
   - user_id
   - place_id

用户通过Friends pivot与他们自己拥有ManyToMany关系。

地方通过place_user

与用户建立了许多关系

如何让所有PlacesUserUser's Friends相关联?

假设我们正在使用用户1,在原始SQL中,我可以获得与该用户的Places相关联的所有Friends

Select places.place from places
inner join place_user on place_user.place_id = places.id
inner join friends on friends.friend_id = place_user.user_id
inner join users on users.id = place_user.user_id
where friends.user_id = 1

我可以获得与Places相关联的所有User

Select places.place from places
left join place_user on place_user.place_id = places.id
left join users on users.id = place_user.user_id
where users.id = 1

但是如何将其组合成一个查询,而且使用Eloquent?

编辑:显然我可以做这两个查询的联盟,但我想知道是否有更简洁的东西,也许在Eloquent中更简洁

0 个答案:

没有答案