Laravel Eloquent Relationsができることは、INNER JOIN
節を追加することはできないようです。私はそれを訂正していますか? whereHas
句はWHERE EXISTS
サブクエリを追加し、with
句は個別のクエリで関係をロードするだけの "eager loading"プリフォームを追加します。Laravel Eloquent Relationships - MYSQLの "join"に相当する
もちろん、INNER JOIN
は、クエリの束を実行するよりも、より効率的な方法になるだろう、私はこれらのクエリのためjoin
句を書かれている例がたくさんあります。
は、私が同じジョイン・クエリに私が一緒に2つのテーブルを使用するたびに書き換える必要がないように
join
句を定義するために説得力の関係を使用することが可能ですか?そうでない場合、なぜですか?関連している2つのテーブルを結合すると、標準化すべきものになるようです。
WHERE EXISTS
のようなサブクエリを追加することは、どのようにして適切な代替手段になるのか実際には分かりません。 (私のテストによると、それははるかに遅いクエリを生成します....)
を検討すべきであるhttps://laravel.com/docs/5.4/queries#joins – Jackowski
@Jackowski - 迅速な対応に感謝します。私はあなたが手動でそれを必要とするすべてのクエリに 'join'節を追加できることを知っています。ここで私の質問は、Laravelの "モデル"で関係を定義し、毎回手動で入力するのではなく、自動的に 'join'節を含めることができるかどうかということです。 (それが不可能な場合は、関連するテーブルからデータを取得するための標準的な方法である必要があるため、Laravelでは標準ではない理由が不思議に思っていました。) –