我有3张桌子:
User
------------------
ID
Name
Room
------------------
ID
Subject
Participate
-------------------
ID
room_id
user_id
这是我的示例数据:
user room participate
----------------- ---------------- ---------------------
ID Name ID subject ID room_id user_id
----------------- ---------------- ---------------------
1 john 1 room1 1 1 1
2 sara 2 room2 2 1 2
3 david 3 room3 3 3 3
4 3 2
5 3 1
6 2 1
现在,我可以访问
user_id
,但是我想在room_id
表中查找与user_ID共享的participate
。例如,我有user_id: 1
和user_id: 2
并想获得共享的room_id 1
。我已经通过user_id
过滤了参与模型,但是我不知道找到room_id。谢谢
最佳答案
您可以尝试创建这样的查询:
$usersIDs = [$userId, $secondUserId]; //here define user ids how many you want
DB::table('room')->select('room.*')
->join('participate', 'participate.room_id', '=', 'room.id')
->join('user', 'user.id', '=', 'participate.user_id')
->whereIn('user.id', $usersIDs)
->havingRaw('count(user.id) = ?', [count($usersIDs)])
->groupBy('room.id')
->first();
关于php - Laravel Eloquent使用相同的外键获取多个记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40284940/