【发布时间】:2021-10-12 20:34:43
【问题描述】:
我有 3 张桌子:
tb_usertb_addquestiontb_answer
以下查询返回每个用户的问题计数 (query 1) 和每个用户的答案 (query 2)。我需要将结果合并到一个输出中。
如何在单个查询的帮助下实现这一目标?
每位用户的问题数 (query1)
SELECT tb_addquestion.userid,
COUNT(*) AS count
FROM tb_addquestion
LEFT JOIN tb_user
ON tb_user.userid = tb_addquestion.userid
GROUP BY tb_addquestion.userid
HAVING count > 0 AND
count < 15
每个用户的答案 (query2)
SELECT tb_answer.userid,
COUNT(*) AS count
FROM tb_answer
LEFT JOIN tb_user
ON tb_user.userid = tb_answer.userid
GROUP BY tb_answer.userid
HAVING count > 0 AND
count < 15
【问题讨论】:
-
抱歉,运行 2 个单独的查询有什么问题?如果将它们组合起来,它们仍将作为 2 个查询运行(如果可以组合它们)。
-
@matiaslauriti 您确定两个单独的查询(= 两个数据库请求)和一个组合查询(= 一个数据库请求)之间没有区别(在性能方面)吗?
-
@AbsoluteBeginner 数据库性能将是相同的,或者将它们加入同一个查询中,将是最糟糕的......
标签: php sql database laravel eloquent