Laravel leftJoin现在显示结果

时间:2018-07-20 16:01:10

标签: php mysql laravel

我是laravel的新手,请lering leftJoin。

我有一个名为“ 用户”的表,其行为“ steam_id ”。

我还有另一个表“ 匹配项” 。 “ 匹配项”表具有一个唯一的行,称为 “ match_id ”。

最后一个名为“ match_players ”的表也具有名为“ match_id”和“ steam_id ”的行。 “ match_id”与表行“ matches-> match_id”相同。

我需要通过使用match_id中的match_id用户Steam_id来获取信息。

控制器:

 $user->LatestMatches = DB::table('match_players AS mp')
->leftJoin('matches AS ma', 'ma.match_id', '=', 'mp.match_id')
->where('mp.steam_id', '=', $user->steam_id)
->where('team', '=', 2)
->where('team', '=', 1)
->select("mp.*", "ma.map")
->get('');

刀片:

@foreach ($user->LatestMatches as $lastmatch)
{{ $lastmatch->map }}
@endforeach

但是没有得到任何信息。对不起,如果你不明白我需要做什么。感谢您的回复,并帮助我理解laravel!

1 个答案:

答案 0 :(得分:1)

->where('team', '=', 1)->where('team', '=', 2)不起作用,因为它同时选择了team 1 AND team 2中的玩家。没有玩家可以满足此约束条件。

改为使用->whereIn('team', [1, 2])。这样会选择team 1 OR team 2中的玩家。