こちらで質問するのは初めてです。学習にとても役立ちました。
テーブルを選択しようとして、別のテーブルの特定のグループの最大値を持つ行のみを取得しています。非常に近いが完全ではない最良の答えの1つはこれです(SQLは列に最大値を持つ行のみを選択します)が、単一のテーブルにのみ関連しています。複数のテーブルを持つ他の人を見つけましたが、正確に使用する方法がわかりません。
私は(簡略化された)のテーブルを持っています
prodID, quantity, mach, etc
私はそれからテーブルを持っています
prodStatusID, prodID, userID, subStatusID
サブステータス名を含む最後のテーブル
subStatusID, subStatusName
最初のテーブルと 2 番目のテーブルのすべてを含むテーブルを取得しようとしていますが、最大のステータス番号を持ち、正しいステータス名を含む行のみを取得しようとしています。
私のもう 1 つの懸念は、今は問題にならないかもしれませんが、1 年か 2 年後に、このことが実際にいっぱいになり始めるときのパフォーマンスです。select の中に select を入れるのが悪いとは思いませんが、すべてのプロダクションを返そうとすると、すべてのプロダクションに対してクエリを実行することになります。
より明確にするために。2 番目のテーブル prodStatus には、prodID が 4 の行が 2 つある可能性がありますが、最初の行の subStatusID は 1 で、2 番目の行は 2 になります。ユーザー ID は異なります。取得したいのは 2 番目の行だけです。2 番目の行には最大のステータス番号があり、その行に関連付けられた userID と statusName が必要だからです。
この回答を得るために 2 日間グーグルで検索しましたが、オークションについて 1 を見ましたが、調査しても完全には理解できません。