私の問題の簡略版。私は2つのテーブルを持っています:
スコア:
id code_id score
1 11 100
2 12 20
3 13 40
4 14 70
5 15 90
6 16 10
7 17 30
8 18 50
コード:
id code
11
12
13
14
15
16 BBB
17 BBB
18 BBB
Codes テーブルに関連付けられたコードを持たない Scores テーブルのすべての行と、Codes テーブルに同一のコードを持つ行の最高スコアのみを返す Mysql SELECT クエリを作成する必要があります。
必要な出力を以下に示します。スコア ID の 1 ~ 5 は関連付けられたコードがないため存在しますが、BBB コードを持つすべてのスコアの最高値であるため、ID 8 のみが選択されます。
id code_id score
1 11 100
2 12 20
3 13 40
4 14 70
5 15 90
8 18 50
それが理にかなっていることを願っています。これは簡単だと思っていましたが、戸惑いました。[greatest-n-per-group] のタグ付きの質問をチェックアウトしましたが、ほとんどの場合、GROUP BY とサブセレクトを実行するときに 1 つのテーブルしか参照していないようで、役に立ちませんでした。
どうもありがとう。