我有两个表(文档和状态)。 文档字段:
id, (int)
document,(string)
file, (string)
creation (date)
状态字段:
id, (int)
id_document, (int)
status, (string)
last_update (date)
id_document 显然与第一张表中的 id 匹配。
第一个表保存与文档有关的数据,第二个表保存第一个表的文档处理状态的更新状态。 我需要创建一个视图以显示仅仅其最新到达状态(如果有)的文档列表。
我写了这个查询,但是可以进行正确的联接,但是我无法将其限制为最后一个状态:
SELECT
documents.*, states.status, states.last_update
FROM
documents
LEFT JOIN states ON states.id = documents.id
ORDER BY states.last_update
我尝试过DISTINCT,DISTINCTROW,但没有运气。...
答案 0 :(得分:1)
这应该提供您想要的内容(可能存在一个更优雅的解决方案):
select d.*,
s.status,
s.last_update
from documents d,
states s
where s.id = d.id
and s.last_update = ( select last_update
from states
where id = d.id
order by last_update desc
limit 0,1 )
or s.last_update is NULL;
答案 1 :(得分:0)
也许可行:
c=c.drop('adjTransactionDate','GroupByFld')
答案 2 :(得分:0)
使用每个文档具有max(last_status)的子查询。然后将子查询内部连接到您对文档和last_status的查询。