У меня есть 3 таблицы: users
, travels
и favorites
.
Я пытаюсь написать запрос на получение данных из БД со следующей информацией: поездка, которую предложил пользовательэто и сколько раз путешествие было отмечено как избранное.
Это мой код:
$travels = DB::table('travels')
->join('users', 'users.user_id', '=', 'travels.user_id')
->leftJoin('favorites', 'favorites.travel_id', '=', 'travels.travel_id')
->select('travels.*', 'users.user_firstname', 'users.user_date_of_birth', 'favorites.travel_id', DB::raw("count(favorites.travel_id) as count_favorite"))
->groupBy('favorites.travel_id', 'travels.travel_id')
->get();
Это почти работает, за исключением того, что значение travel_id
теперь равно NULL, когда путешествиене помечено как избранное (отсутствует в таблице избранного).Я совершаю левый джойн, потому что я хочу ВСЕ путешествия (даже те, которые не отмечены как избранные).
Чего мне не хватает?
Большое спасибо