一部の行で、1 つの列を除いてほとんどの列が重複しているテーブルがあります。これらの行を選択し、いくつかの要件に従って 1 つだけを保持する方法を知りたいですか? ここに私が持っているテーブルがあります:
+------+------+--------+---------+-----------+
| a_id | b_id | a_name | b_name | matching |
+------+------+--------+---------+-----------+
| 001 | 123 | AAA | BBB | ID |
+------+------+--------+---------+-----------+
| 002 | 456 | CCC | CCC | ID |
+------+------+--------+---------+-----------+
| 002 | 456 | CCC | CCC | Name |
+------+------+--------+---------+-----------+
要件は、同じ a_id に対して、一致する ID と一致する名前の両方がある場合、一致する名前を持つ行を削除することです。一致する ID は別のテーブルによって決定されるため、心配する必要はありません。したがって、上記の表の望ましい出力は次のようになります。
+------+------+--------+---------+-----------+
| a_id | b_id | a_name | b_name | matching |
+------+------+--------+---------+-----------+
| 001 | 123 | AAA | BBB | ID |
+------+------+--------+---------+-----------+
| 002 | 456 | CCC | CCC | ID |
+------+------+--------+---------+-----------+
私はMySqlにあまり詳しくありません。if ステートメントを使用して、最初に同じ a_id を持つ行を除外し、次に一致する列を比較することを考えています。しかし、クエリでそれを行う方法がわかりません。これを行うためのより良い方法があるかどうか疑問に思っています。ご意見をお待ちしております。前もって感謝します!