gpt4 book ai didi

mysql - 如何获取最新值并删除旧值?

转载 作者:行者123 更新时间:2023-11-29 12:17:36 24 4
gpt4 key购买 nike

我正在制作一个sql命令,每次用户提出问题或回答问题时都会获得最新值。但是有一个错误,当我获得答案值时,它会获得所有答案和问题。我只想得到最新的答案。示例:

|    postid | type    | parentid | 
|--------- |---------|-----------
| 97 | A | 92
| 96 | A | 93
| 95 | A | 93
| 94 | Q | NULL
| 93 | Q | NULL
| 92 | Q | NULL
| 91 | Q | NULL

我尝试使用 groupby(parentid) 。但它没有得到任何疑问。像这样:

|    postid | type    | parentid | 
|--------- |---------|-----------
| 97 | A | 92
| 96 | A | 93

但我想得到: 最新答案(在本答案+本答案的问题之前不要得到答案) 问题(如果没有答案,请保留此问题)

|    postid | type    | parentid | 
|--------- |---------|-----------
| 97 | A | 92
| 96 | A | 93
| 94 | Q | NULL
| 91 | Q | NULL

这是我的代码:

 SELECT `p`.* 
FROM `qa_posts` `p`
JOIN `user_member` `u` ON u.user_id = p.userid
LEFT JOIN `user_profile` `pr` ON u.user_id = pr.user_id
WHERE p.is_deleted =0
GROUP BY `p`.`parent_id`
ORDER BY `p`.`postid` DESC LIMIT 10

最佳答案

这个怎么样?

select max(postid), type, parentid
from posts
group by type, parentid

fiddle :http://sqlfiddle.com/#!9/357ce/1

编辑
好吧,看来我可能误解了,您想要所有未回答的问题,加上所有其他问题的最新答案,但不是那些有答案的问题?如果是这样,我们可以使用 UNION 轻松完成此操作,这将做到这一点:

select max(postid) p, type, parentid
from posts
where type = 'A'
group by parentid
union
select p1.postid, p1.type, p1.parentid
from posts p1
left join posts p2
on p1.postid = p2.parentid
where p2.parentid is null and p1.type = 'Q'
order by p desc;

这里有更新的 fiddle :http://sqlfiddle.com/#!9/05667/17

关于mysql - 如何获取最新值并删除旧值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com