我有两张桌子:
表_A: ID | 文件
表_B: ID | docs_id | 批准| 公共 | 发布时间 | 版本
现在,table_B 的 docs_id 就是 table_A 的 id。
我想获取最后 20 个条目的 id 和文件(按 publish_time 降序排列)。我的问题是,table_B 中有几行唯一不同的(除了 publish_time)是版本。所以我只想获得最新版本。
SELECT d.* FROM docs d LEFT JOIN doc_versions dv ON d.id = dv.docs_id WHERE dv.approved='1' AND dv.public='1' ORDER BY publish_time DESC LIMIT 0,20
我怎样才能改进这个查询,所以我不会得到重复?Distinct 不起作用,因为行不完全相同,因为版本字段(因为我没有在我的 publish_time 时间戳中计算秒数,所以可能有一行 publish_time 等于另一行但版本不同。 .)