次の構造の MySQL データベース テーブルがあります。
+----+---------+---------+---------------------+
| id | item_id | name | modified |
+----+---------+---------+---------------------+
| 1 | 1829 | Item 1 | 2013-10-20 20:42:34 |
| 2 | 1737 | Item 2 | 2013-10-25 12:33:01 |
| 3 | 1829 | Item 3 | 2013-10-22 18:47:22 |
| 4 | 1737 | Item 2b | 2013-10-29 21:12:29 |
| 6 | 1829 | Item 3b | NULL |
+----+---------+---------+---------------------+
私がやりたいのは、単一のクエリですべてのアイテムを取得することですが、繰り返される場合は、より新しい (変更されたフィールドが新しい) または変更されたフィールドが NULL であるアイテムのみを取得します。
したがって、このテーブルから得られるものは次のとおりです。
+----+---------+---------+---------------------+
| id | item_id | name | modified |
+----+---------+---------+---------------------+
| 1 | 1829 | Item 1 | 2013-10-20 20:42:34 |
| 4 | 1737 | Item 2b | 2013-10-29 21:12:29 |
| 6 | 1829 | Item 3b | NULL |
+----+---------+---------+---------------------+
次のような 2 番目の選択でそれを行うことができます。
SELECT db_items.item_id, db_items.name, db_items.modified
FROM (SELECT item_id, name, modified
FROM db_items
ORDER BY modified DESC) db_items
GROUP BY item_id
しかし、内部の SELECTS なしで可能かどうか知りたいです (これは単なる例であり、より複雑なクエリで使用するため)。
お時間とご回答ありがとうございます。