我有一个包含channel_id, user_id
的channel_members
表。如果有多行使用相同的 channel_id
,其中包含我将提供的多个 user_id
,我需要获取 channel_id
。
例子: 如果表中有5行
CHANNEL_ID | USER_ID
2 | 2
2 | 3
2 | 4
3 | 2
3 | 4
我需要获取 user_id
2、3 和 4 正在使用的 channel_id
。所以根据我提供的上表。我应该得到 channel_id
2。
最佳答案
我假设你已经定义了你的关系 uisng 模型,根据你提供的描述, channel 与用户有多对多的关系
class Channel extends Model
{
public function members()
{
return $this->belongsToMany('App\User', 'channel_members', 'channel_id', 'user_id');
}
}
使用 eloquent realtions 你可以检查相关模型是否存在
$channels = App\Channel::whereHas('members', function ($query) {
$query->where('id', '=', 2);
})->whereHas('members', function ($query) {
$query->where('id', '=', 3);
})->whereHas('members', function ($query) {
$query->where('id', '=', 4);
})->get();
以上将根据提供的 ID 仅返回与所有 3 个用户有关联的 channel
关于php - 仅当表包含来自不同行的多个所需值时如何从表中获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53644071/