laravel - SQL查询类似集合的概念(补或除外)
问题描述
我需要你的帮助。我只想显示不在表格文档中但在今天日期的所有用户(来自表格用户)的名称
我试过但我失败了这是我的代码
public function activeUser(){
$documents = DB::table('users')
->leftJoin('documents', 'users.id', '=', 'documents.user_id')
->select('users.fname','users.mname','users.sname','documents.created_at')
->where('documents.user_id',null)
->where('documents.created_at',null)
->get();
return view('activity.activity')->with('documents', $documents);
}
我不知道在 where 子句中添加当前日期。上面的代码给了我在表格文档中记录的所有用户,但是如果用户曾经存在于文档中,将始终被认为是在该文档表中。
解决方案
您可以使用“whereBetween”(https://laravel.com/docs/6.x/queries#where-clauses)。
public function activeUser(){
$yesterday = Carbon::yesterday();
$today = Carbon::today();
$documents = DB::table('users')
->leftJoin('documents', 'users.id', '=', 'documents.user_id')
->select('users.fname','users.mname','users.sname','documents.created_at')
->where('documents.user_id',null)
->whereBetween('documents.created_at', [$yesterday, $today])
->get();
return view('activity.activity')->with('documents', $documents);
}
请记住,如果更符合您的业务逻辑案例,您也可以使用“whereNotInBetween”。
推荐阅读
- python - 如何在python中将迭代函数转换为递归函数
- process - BPMN 2.0 中用于问答流程的消息流
- php - 跨域会话
- python - python类中的`__init__()`是什么
- powerbi - 与数据表列的 OnSelect 混淆潜在故障(仅在 PowerBI 中)
- css - 在两个组件之间切换时如何避免闪光效果?
- python - FutureWarning:正则表达式的默认值将在未来版本中从 True 更改为 False
- django - 调用自写 clean_field 后数据库中的字段为空
- python - 层模型需要 3 个输入,但它接收到 1 个输入张量 - 尝试拟合模型时引发错误
- css - CSS:随内容缩小的半高标题