我是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!
答案 0 :(得分:1)
->where('team', '=', 1)->where('team', '=', 2)
不起作用,因为它同时选择了team 1
AND team 2
中的玩家。没有玩家可以满足此约束条件。
改为使用->whereIn('team', [1, 2])
。这样会选择team 1
OR team 2
中的玩家。