Mysql 如何获得历史记录中的最后一行
我有一个疑问:Mysql 如何获得历史记录中的最后一行,mysql,sql,mariadb,Mysql,Sql,Mariadb,我有一个疑问: SELECT id, numero_processo, assunto, ( SELECT processo_historico.urgencia FROM processo_historico WHERE processo_historico.id_processo = processo.id ORDER BY processo_historico.id DESC LIMIT 1
SELECT id,
numero_processo,
assunto,
(
SELECT processo_historico.urgencia
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as urgencia,
(
SELECT processo_historico.nome_resp
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as nome_resp,
(
SELECT processo_historico.user_responsavel
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as user_responsavel,
(
SELECT processo_historico.data_chegada
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as data_chegada,
(
SELECT processo_historico.distribuicao
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as distribuicao,
(
SELECT processo_historico.despacho
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as despacho,
(
SELECT processo_historico.parecer
FROM processo_historico
WHERE processo_historico.id_processo = processo.id
ORDER BY processo_historico.id DESC LIMIT 1
) as parecer
FROM processo
正如你们所看到的,太多的子查询使得每一个“processo”都有一行,其中最后插入了“processo_historico”
我该如何改进这一点?还有一个问题,我怎样才能把这个
WHERE processo_historico.user_responsavel = *userinput*
这需要得到最后一个“processo_historico”,其中“user_ResponseAvel”是一些数字
表之间的关系是:“processo”1 x N“processo_historic”减少多个子查询以将每个列提取为一个
SELECT id,
processo.numero_processo,
processo.assunto,
ph.urgencia,
ph.nome_resp,
ph.user_responsavel,
ph.data_chegada,
ph.distribuicao,
ph.despacho,
ph.parecer
FROM processo
LEFT OUTER JOIN (
select
processo_historico.urgencia,
processo_historico.nome_resp
,processo_historico.user_responsavel
,processo_historico.data_chegada
,processo_historico.distribuicao
,processo_historico.despacho
,processo_historico.parecer
FROM
processo_historico
WHERE ph.user_responsavel = *userinput*
ORDER BY processo_historico.id DESC LIMIT 1)
AS ph ON ph.id_processo = processo.id
你能用示例数据解释一下你想完成什么吗?@Sjoerd因此,表之间的关系是:表“processo”1 x表“processo_historic”。我想知道将“where”放在何处,以获取“processo_historic”上插入的最后一行,其中“processo_historic.user_responsavel”等于某个int值谢谢您的帮助,但此sql在所有“processo_historic”上返回空值data…@GuilhermedRazzi-子查询在自己运行时会给出什么?对“userinput”的测试需要在子查询内部。