ホームページ >バックエンド開発 >PHPチュートリアル >mysql 最適化問題 where の使用 filesort の使用
説明 select userid from Team_enewsmember where Agentid in(select userid from Team_enewsmember where Agentid='2' and levelid>=1 group by userid) and levelid>=1 group by userid
主キー userid が次の場合Agentid と組み合わせるとインデックスが表示されます。 where を使用します。index を使用します。
filesort を使用するが削除できません。
主キーは一意である必要があり、グループの追加は不要です
userid が主キーですが、なぜ userid でグループ化する必要があるのですか? ?
主キーは一意である必要があります。グループの追加は不要です
ありがとうございます!それを削除した後は、Where を使用するだけです
内部結合と左結合は異なる結果セットを持ち、
を使用して結合することはできません。結果を再度クエリするとはどういう意味ですか?
や
を使用して結合することはできません
MySQL サブクエリ ステートメントは内部結合または左結合に変更されました そのとき初めて、同じテーブルをチェックしていることに気づきました
同じテーブルをチェックしていることに今気づきました
同じテーブルですが、この場合の自己結合の書き方を教えてください。自分では書けないので仕方がありません。
以上です
select userid from team_enewsmember a, team_enewsmember b where a.agentid=b.userid and b.agentid='2' and b.levelid>=1 and a.levelid>=1
以上です
select userid from team_enewsmember a, team_enewsmember b where a.agentid=b.userid and b.agentid='2' and b.levelid>=1 and a.levelid>=1
team_enewsmember から a.userid を a として選択し、team_enewsmember を b として選択します (a.userid=b.userid、b.agentid='2'、および b.levelid>=1)。
a.
useridを選択してください。ありがとうございます!これで問題ありません。第 3 レベルのノードと第 4 レベルのノードを確認する方法は、サブクエリとして自己結合を使用しますか? カスケードデータをチェックしていますか?次に、再帰を使用するか、データ構造を変更する必要があります。
それが固定レベル 4 内にある場合のみ、これは問題ありません。