gpt4 book ai didi

php - 在 laravel 中编写 sql 查询时遇到困难

转载 作者:行者123 更新时间:2023-11-29 03:27:11 26 4
gpt4 key购买 nike

我们有三个表 users、answers 和 stretches。当有人登录我们的系统时,我们将 user_id、created_at 和 updated_at 存储在 stretches 表中,当他/她注销时,我们在同一行中更新删除。

类(class)时间 30 分钟。

用户表

  • 编号
  • 姓名
  • 我的名字
  • 电邮

答案表

  • 编号
  • 用户编号
  • 正文
  • 创建于
  • 更新时间

拉伸(stretch)表

  • 编号
  • 用户编号
  • 创建于
  • 更新时间
  • 删除时间

现在我只想从 stretches 表中获取已给出答案的那些行。我写了这个查询,但它花费了很多时间,但没有返回准确的数据。

  $query = "select count(a.id), a.user_id
from answers a
where a.created_at in
(select s.created_at
from stretches s
where s.created_at >= a.created_at
) group by a.user_id";
$results = DB::select(DB::raw($query));

我很想知道你们中的一些人是如何编写这个查询的。

答案表

id | body | user_id |    created_at    |    updated_at 
10 | text | 10 | 2015-10-10 0:0:0 | 2015-10-10 0:0:0

拉伸(stretch)表

id | user_id |    created_at    |    updated_at    |    deleted_at 
1 | 10 | 2015-10-00 0:0:0 | 2015-10-10 0:0:0 | 2015-10-20 0:0:0

现在我想从 stretches 表中获取那些已给出答案的行。

查询结果应该是:

id | user_id |    created_at    |   updated_at    |    deleted_at 
1 | 10 | 2015-10-10 0:0:0 |2015-10-10 0:0:0 | 2015-10-10 0:0:0

最佳答案

如果我理解正确的话。下面的 SQL 查询将仅返回表 Stretches 中已向用户提供答案的那些记录。使用运算符 JOIN,它会为您完成过滤工作。

SELECT S.user_id, COUNT(*) as answers_count FROM Stretches AS S
JOIN Answers AS A ON S.user_id = A.user_id
GROUP BY S.user_id

关于php - 在 laravel 中编写 sql 查询时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34563839/

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