gpt4 book ai didi

mysql - sql查询连接四张表

转载 作者:可可西里 更新时间:2023-11-01 08:15:29 25 4
gpt4 key购买 nike

SELECt 
qst_id,qst_title,ans_date,ans_text
FROM
(
SELECT
a.Question_Id as qst_id,a.Question_Title as qst_title,a.Question_Text as qst_text,DATE_FORMAT(a.LastActivity_Date,'%d %b %Y %T') as qst_date,b.UserForum_Image as qst_prof,b.ScreenName as qst_scname

FROM
tblforumquestion a, tblregistration2_2 b
WHERE a.RegistrationId=b.RegistrationId and a.LastActivity_Date between '2014-0-01 00:00:00' and '2015-05-01 00:00:00'
ORDER BY a.LastActivity_Date desc limit 5

outer join

SELECT
DATE_FORMAT(c.Answer_Date,'%d %b %Y %T') as ans_date,c.Answer_Text as ans_text,d.UserForum_Image as ans_prof,d.ScreenName as ans_scname
FROM
tblforumanswer c ,tblregistration2_2 d
where c.Answer_Id in
(
SELECT MAX(Answer_Id)
FROM tblforumanswer
GROUP BY Question_Id
)
and c.RegistrationId=d.RegistrationId
order by c.Answer_Date desc limit 5
)

我正在尝试从我的帖子中获取最新的 5 个问题和答案。如果有任何没有答案的问题,它也应该在一行中显示为问题详细信息,答案详细信息为空。但是上面的代码出错了。任何帮助是可观的。我的数据库是mysql。

tblquest

tblans

result

任务tblans结果

最佳答案

我认为我们终于提取了足够的细节来得出答案:

select q.qstid, q.qsttext, a.anstext
from tblquest q
left join tblans a
on q.qstid = a.qstid
left join tblans a2
on a.qstid = a2.qstid and a.ansdate < a2.ansdate
where a2.ansdate is null
order by q.qdate desc limit 5;

demo here

我们left join问题的答案,以确保我们保留了所有问题,包括那些没有答案的问题。

然后我们再次 left join 到答案,但这次是在一个范围条件下,以便只选择问题的最新答案。如果没有日期大于 aa2,则 a 必须是最近的答案 - 这是由 where a2.ansdate is null 子句。

如果您愿意,也可以使用子查询来完成。

最后,我们只是对结果进行排序和限制,以获得最近的 5 个问题。

关于mysql - sql查询连接四张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30068462/

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