Laravel объединение таблиц в запросе к базе данных - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть этот код:

$classic_games_money = DB::table('bets')
    ->where('user_id', $this->user->id)
    ->sum('price');

Отображает сумму дохода, но мне нужно отображать эту информацию, только если идентификатор пользователя указан в столбце winner_id в таблице games. То есть, как я могу подключить другую таблицу в этом запросе?

1 Ответ

1 голос
/ 22 февраля 2020

Вам не нужно join здесь, exists будет достаточно. Я думаю, у вас есть game_id столбец в bets таблице.

$classic_games_money = DB::table('bets')
    ->where('user_id', $this->user->id)
    ->whereExists(function ($query) {
        $query
            ->selectRaw(1)
            ->from('games')
            ->whereRaw('games.id = bets.game_id')
            ->whereRaw('games.winner_id = bets.user_id');
    })
    ->sum('price');
...