1
私はLaravelが提供するEloquent ORMを使用しています。私は Laravel:複数のテーブルを使用する場所を実行
仕事乗員テーブルがpocket_money
列を呼びかけているとジョブテーブルがincome
という列を持っている3機種
- ハウス
- 乗員
- を持っています。乗員は、彼らの収入+ pocket_moneyの合計がXよりも大きい場合ので、私は生のクエリは
select occupants.* from occupants o, jobs j where o.pocket_money + sum(j.income) > X and o.occupant_id = j.occupant_id
だろうので、これは私が現時点で持っているものであるが、居住者のすべてを選択したい複数のジョブを持つことができますクエリを実行するときに占有者テーブルが使用できないため、機能しません。
$occupants = House::with(["occupants", "occupants.jobs" => function($query) { $query->where('occupants.pocket_money + sum(jobs.income)', '>', 1000); }])->find($house_id);
代わりに左結合を使用してください。 'With'は別のサブクエリです。 – aynber