私は自分自身に何か新しいことを教えようとしていて、WordPressがリビジョンで動作するようにテーブルを構造化する方法を調べていました。
構造は次のように(sorta)です:
+----+------------+---------------------+------------+-----------------+-------------+
| ID | post_title | post_date | post_name | post_content | post_parent |
+----+------------+---------------------+------------+-----------------+-------------+
| 1 | Foo | 2012-09-20 10:00:00 | Foo | Bar | 0 |
| 2 | Arrrrr | 2012-09-20 10:05:00 | Arrrr | Pirates! | 0 |
| 3 | Arrrrrr | 2012-09-20 10:06:00 | revision-1 | Argh pirates | 2 |
| 4 | Arrrrrr | 2012-09-20 10:06:00 | revision-2 | Argh piratessss | 2 |
+----+------------+---------------------+------------+-----------------+-------------+
ここで、IDを持つ親行(FooとArrrr)のみを取得し、内容は改訂されたクエリを作成したいと思います。
私は次のクエリを思いついた:
SELECT original.ID, revision.post_title, revision.post_content, revision.post_name FROM wp_posts AS original
INNER JOIN wp_posts AS revision ON original.ID = revision.post_parent
WHERE original.post_status = 'publish'
AND original.post_parent = 0
ORDER BY original.ID, revision.ID DESC
これにより、次の結果が得られます。
+----+------------+---------------------+------------+-----------------+-------------+
| ID | post_title | post_date | post_name | post_content | post_parent |
+----+------------+---------------------+------------+-----------------+-------------+
| 1 | Foo | 2012-09-20 10:00:00 | Foo | Bar | 0 |
| 2 | Arrrrrr | 2012-09-20 10:06:00 | revision-2 | Argh piratessss | 2 |
| 2 | Arrrrrr | 2012-09-20 10:06:00 | revision-1 | Argh pirates | 2 |
| 2 | Arrrrr | 2012-09-20 10:05:00 | Arrrr | Pirates! | 0 |
+----+------------+---------------------+------------+-----------------+-------------+
しかし、私はそれをさらに減らしたいと思います:
+----+------------+---------------------+------------+-----------------+-------------+
| ID | post_title | post_date | post_name | post_content | post_parent |
+----+------------+---------------------+------------+-----------------+-------------+
| 1 | Foo | 2012-09-20 10:00:00 | Foo | Bar | 0 |
| 2 | Arrrrrr | 2012-09-20 10:06:00 | revision-2 | Argh piratessss | 2 |
+----+------------+---------------------+------------+-----------------+-------------+
に追加DISTINCT
してみましたが、どちらも目的の結果が得られませんでした。SELECT
GROUP BY original.ID