実現したいこと
例えば以下のようなテーブルがあったとき、
id | number | data |
---|---|---|
1 | ABC | AAA |
2 | DEF | BBB |
3 | ABC | CCC |
4 | GHI | DDD |
以下のようなデータを取り出したいです
id | number | data |
---|---|---|
2 | DEF | BBB |
3 | ABC | CCC |
4 | GHI | DDD |
id1
とid3
のnumber
が重複しているので、idの大きいid3
、およびnumber
が重複していないid2,id4
のみを返りとして得たいです。
発生している問題・分からないこと
返りのデータとしてはすべての列を得たいです。
分けてデータを得てから結合する方法ももしかしたらあるのかなと思いますが、可能であれば最初から一つのテーブルで受け取りたいです。(分けて得たとしてもid降順でソートできればよいのですが)
その方法がわからず質問させていただきました。
よろしければご教授いただければと思います。
試したこと・調べたこと
上記の詳細・結果
DINSTINCT
節を使ってしまうと、すべての列を選択できず、重複している行のみ抽出する方法や重複していない行のみを抽出する方法は見つかったのですが、実現したいことをやるためには少し工夫がいりそうだというところではありましたが、初学者のため調べ方が外れていそうでうまく情報を得られないでいます。
補足
MariaDB および InnoDB です
0 コメント