問題は簡単に言えば、1番目のレコードは、レコードが最新の2番目のテーブルに結合したままにしておかなければなりません。したがって、私は関数MAX()を使用するアプローチを使用します。最大IDを持つ行を取得
現在、私は2つのテーブルを持っています。
試合
matches_payments
は今、私はmatches_payments
望ましい結果
にMAX(id)を使用して最初の1に2つ目のテーブルに参加したいが、私は原因greatest-n-per-group
問題に望ましい結果を得ていないのです。この機能を使用する場合、各グループ内のすべての行が省略されている列の同じ値を有していなければならないStackoverflow Question
:
クエリ
SELECT matches.id, mp.* FROM matches LEFT JOIN (SELECT MAX(id) AS id, match_id paymentStatus FROM matches_payments GROUP BY match_id) AS mp ON mp.id = matches.id;
所望の結果が起因して生成されていませんGROUP BY部分から。サーバーはグループから任意の値を返すことが自由であるため、すべての値が同じでない限り、結果は不確定です。
のMySQLデベロッパーよりPS :私はテーブルが不十分に設計されている知っています。それは私の仕事ではなく、最後の開発者が行ったものです。
あなたも 'マックス()'の試みで、あなたの 'sql'コードを投稿することができますか? – lois6b
@downvoterは説明してくれませんか? –
私は投票しませんでしたが、多分このような質問に必要なMCVEを省いたからでしょうか? – Barmar