У меня есть запрос Eloquent, который выглядит следующим образом:
return $contest->join('posts','contests.id','posts.contest_id')
->join('winners', 'contests.winner_id', 'winners.id')
->where('posts.user_id', $id)
->where('winners.gold_user_id', $id)
->orWhere('winners.silver_user_id', $id)
->orWhere('winners.bronze_user_id', $id)
->orderBy('contests.created_at', 'desc');
В SQL:
select * from `contests`
inner join `posts` on `contests`.`id` = `posts`.`contest_id`
inner join `winners` on `contests`.`winner_id` = `winners`.`id`
where `posts`.`user_id` = 4
and `winners`.`gold_user_id` = 4
or `winners`.`silver_user_id` = 4
or `winners`.`bronze_user_id` = 4
order by `contests`.`created_at` desc
Но моя проблема в том, что он отображает все остальные записи о конкурсах, где идентификаторнайдено.
Это моя таблица победителей:
![enter image description here](https://i.stack.imgur.com/FNN54.jpg)
Что я хочу сделать, это проверить, является ли пользователь золотым,серебряный или бронзовый победитель.Теперь, с моим запросом, он выбирает все столбцы, в которых совпадает строка идентификатора.Как я могу достичь своей цели?