Laravel 在数据库查询中连接表
Laravel joining tables in a database query
我有这个代码:
$classic_games_money = DB::table('bets')
->where('user_id', $this->user->id)
->sum('price');
它显示的是收入金额,但只有在games
table的winner_id
列中显示的用户id才需要显示此信息。也就是说,如何在此查询中连接另一个 table?
这里不需要join
,exists
就够了。我猜你在 bets
table.
中有 game_id
列
$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');
我有这个代码:
$classic_games_money = DB::table('bets')
->where('user_id', $this->user->id)
->sum('price');
它显示的是收入金额,但只有在games
table的winner_id
列中显示的用户id才需要显示此信息。也就是说,如何在此查询中连接另一个 table?
这里不需要join
,exists
就够了。我猜你在 bets
table.
game_id
列
$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');