好的,我有一个包含以下列的表
id | page_id |版本| gold_master
所以会有多个page_id,但只有一个是gold_master。但是有些行的版本号比gold_master高,但不是黄金大师。
如何选择版本高于gold_master但不是gold_master的所有行。
到目前为止,我从另一位看“不是金牌大师”的部分令我感到困惑!
答案 0 :(得分:1)
你的意思是
SELECT * FROM your_table where version > (select version from your_table where gold_master=1)
答案 1 :(得分:0)
就个人而言,我有两个表:一个用于pages
,另一个用于page_revisions
实际保存内容。
您的pages
表将定义主ID以及当前版本ID。 page_revisions
表将保存页面标题,内容以及您要为页面存储的任何其他数据。此表在page_id
上有一个外键,以及timestamp
,因此您可以查看创建修订的时间并对其进行排名。该表也有自己的主键。
由于page_revisions
表格有自己的主要ID,因此您可以在pages
表中将其用作revision_id
。因此,最新版本可能不是当前版本,因为您可以将revision_id
设置为早期版本。
希望这是有道理的。如果没有,请告诉我。
编辑:你的实际查询看起来像这样:
SELECT p.id, r.title, r.content, r.created
FROM pages p
LEFT JOIN page_revisions r
ON p.revision_id = r.id
WHERE p.id = 1
LIMIT 1