我將數據拆分爲兩個表。一個是實體表,它描述實體的基礎知識,以及實體數據所在的修訂表。如果我知道我的實體可以查詢最新版本:提供每個實體的最新版本的mysql查詢
SELECT *
FROM `entities`
JOIN (SELECT *
FROM `revisions`
WHERE `entity_fk` = ?
ORDER BY `revised` DESC
LIMIT 0, 1) as `revision`
ON `entities`.`id` = `revision`.`entity_fk`
但現在我需要使用他們的最新修訂數據,列出所有實體。
revisions table
+--+---------+---------+--------------------+-------------------+
|id|entity_fk|title |body |revised |
+==+=========+=========+====================+===================+
|01| 01 |Hentity A|This Is tH3 first...|2010-08-30 10:02:45|
|02| 01 |Entity A |This is the first...|2010-08-30 10:16:30|
|03| 02 |Entity B |This is another... |2010-08-30 10:20:20|
查詢應返回的內容是每個實體的最新修訂列表,而不僅僅是指定的實體。
2,1,Entity A,This is the first...,2010-08-30 10:16:30
3,2,Entity B,This is another...,2010-08-30 10:20:20
entity_FK是實體表的PK。它是網站特定的語法標準。 – 2010-08-30 20:30:53