gpt4 book ai didi

sql - 在 1 个查询中获得问题和答案

转载 作者:太空狗 更新时间:2023-10-30 01:57:54 24 4
gpt4 key购买 nike

我需要进行查询以获取所有用户的问题,并针对每个问题从数据库中获取 3 个答案。此查询需要尽可能高效。

我有表格:

questions:
id
user_id
title
date_created
date_updated

answers:
id
question_id
user_id
body
date_created

我可以在 1 个查询中完成吗?基本上我需要显示问题,与用户表进行连接以获取用户名,显示问题的 3 个答案并为每个答案显示发帖人的用户名。

我点的是这样的:

SELECT questions.*, GROUP_CONCAT(answers.id) as answers 
FROM (questions)
JOIN users ON users.id = questions.user_id
LEFT JOIN answers ON answers.question_id = questions.id
WHERE questions.user_id = '1'
GROUP BY questions.id
ORDER BY questions.date_updated desc
LIMIT 3

但这还没有完成,而且效果不佳。

最佳答案

我建议使用交叉应用...它取决于您使用的 SQL Server 版本,但这是一个示例查询。
如果您不确定问题是否有答案,请使用外部申请
如果您只想要有答案的问题,请使用交叉应用

SELECT
q.id,
q.[user_id],
q.title,
q.date_created,
q.date_updated,
ans.id,
....
FROM
questions q
CROSS APPLY
(
SELECT TOP 3
a.id,
a.question_id,
a.[user_id],
a.body,
a.date_created
FROM
answers a
WHERE
q.id = a.question_id
) ans

see more here

关于sql - 在 1 个查询中获得问题和答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421577/

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