検索

ホームページ  >  に質問  >  本文

php - N+1クエリ質問を回避するために最適化されたクエリを備えたYiiリレーショナルテーブル

例: 特定の投稿の詳細ページ
詳細ページには多くの関連付けがありますコメント テーブル
コメント テーブルには 1 つの関連付けがありますユーザー テーブル
ユーザー テーブル 関連付けが 1 つありますユーザー データ テーブル

その後、コメント リストについては、 with('author') 関連付けを通じて user テーブル をクエリすることができ、N 1 クエリを回避できます

しかし、現時点では、ユーザー テーブル関連付けクエリユーザー データ テーブルを通じて、まだ N 1 クエリです。

ユーザー テーブルユーザー データ テーブルを一度に関連付けるにはどうすればよいですか?

阿神阿神2715日前1227

全員に返信(2)返信します

  • 欧阳克

    欧阳克2017-06-10 09:49:45

    コメント関連ユーザー: getAuthor
    ユーザー関連ユーザーデータ: getAuthorname
    は('author.authorname')で取得できます。
    例を見たい場合は、このビデオの章で、マルチレイヤー関連付けからのデータの取得についてのみ説明します。

    返事
    0
  • 世界只因有你

    世界只因有你2017-06-10 09:49:45

    以前 ActiveRecord を使用していたときは、モデル ファイルをあちこち変更するのが面倒で、ネイティブ SQL を使用していました。パフォーマンスは良好です。LEFT JOIN 関連付けで十分です。findBySQL() を使用して確認してください。

    返事
    0
  • キャンセル返事