1
このコードは、 "count"と "odds"の値がまったく同じ(同じであってはならない)を返します。 実際には「o.id」のみをカウントし、両方に同じ値を返します。Laravel leftJoinとカウントの問題
「b.id」を正しくカウントするにはどうすればよいですか?
\DB::table('matches as m')
->selectRaw(' m.id as match_id,
m.date_hour as date,
m.tournament_id as tournament_id,
h.name as host_name,
g.name as guest_name,
COUNT(o.id) as odds,
COUNT(b.id) as count
')
->whereRaw('DATE(m.date_hour) = DATE(NOW())') //OK
->leftJoin('teams as h','h.id','=','m.host_id')
->leftJoin('teams as g','g.id','=','m.guest_id')
->leftJoin('odds as o','o.match_id','=','m.id')
->leftJoin('bets as b','b.match_id','=','m.id')
->groupBy('m.id')
->having('odds','>','0')
->get();
使用しているデータベーステーブルの構造と、正確にしたいものの例を投稿してください。 – Jerodev
@Jerodev私はテーブルを持っています:**は**、**はmatch_idで**はオッズ、**はmatch_idで**はベットしています。私は奇数と賭けの数でリストされた試合をしたいと思います。 – Rasko