我有一个包含channel_members
的{{1}}表。如果有多个行使用相同的channel_id, user_id
,而该行包含我将提供的多个channel_id
,则需要获取channel_id
。
示例: 如果表格中有5行
user_id
我需要获取CHANNEL_ID | USER_ID
2 | 2
2 | 3
2 | 4
3 | 2
3 | 4
2、3和4正在使用的channel_id
。因此,根据我提供的上表。我应该得到user_id
2。
答案 0 :(得分:0)
我假设您已经定义了用户界面模型,根据您提供的描述,频道与用户之间有很多关系
class Channel extends Model
{
public function members()
{
return $this->belongsToMany('App\User', 'channel_members', 'channel_id', 'user_id');
}
}
使用雄辩的语言,您可以查看相关模型的存在性
$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个用户相关联的频道
答案 1 :(得分:0)
SELECT CHANNEL_ID
FROM channel_members
WHERE USER_ID in (2,3,4)
GROUP BY CHANNEL_ID
HAVING COUNT(CHANNEL_ID) > 0