MySQL / Laravel / Eloquent: Select 行存在于 2 个表中
MySQL / Laravel / Eloquent: Select rows that exist in 2 tables
我有一个 users
table 和 2 个枢轴 tables (user_locations
, user_roles
) 允许用户关联多个 "locations" 和 "roles"。 select 属于 New York
(位置) 和 Manager
(角色)的用户的最佳方式是什么?
每个 table 中的列:
Table users
=> id
, name
Table user_locations
=> user_id
, location_id
Table user_roles
=> user_id
, role_id
因此,例如,我想获取与 location_id 100
和 role_id 200
[=30= 关联的用户列表]
我希望我能清楚地解释我的目标。提前致谢!
如果您在用户模型中正确设置了关系,您可以这样做:
$new_york_managers = User::whereHas('locations', function($q) {
$q->where('id', 100);
})->whereHas('roles', function($q) {
$q->where('id', 200);
});
我有一个 users
table 和 2 个枢轴 tables (user_locations
, user_roles
) 允许用户关联多个 "locations" 和 "roles"。 select 属于 New York
(位置) 和 Manager
(角色)的用户的最佳方式是什么?
每个 table 中的列:
Table users
=> id
, name
Table user_locations
=> user_id
, location_id
Table user_roles
=> user_id
, role_id
因此,例如,我想获取与 location_id 100
和 role_id 200
[=30= 关联的用户列表]
我希望我能清楚地解释我的目标。提前致谢!
如果您在用户模型中正确设置了关系,您可以这样做:
$new_york_managers = User::whereHas('locations', function($q) {
$q->where('id', 100);
})->whereHas('roles', function($q) {
$q->where('id', 200);
});