php - 如何获取重复 usid 的特定日期范围的最新数据
问题描述
我有2 张桌子。一个是用户详细信息,另一个是付款表。我只想在一个月内获得该用户的最新数据。
$sql="SELECT a.usr_id, a.fname, a.lname, c.user_id, c.payment_dt
FROM user_details a
INNER JOIN payment c
ON a.usr_id = c.user_id
INNER JOIN (SELECT user_id,
Max(payment_dt) maxDate
FROM payment
GROUP BY user_id) b
ON c.user_id = b.user_id
AND c.payment_dt = b.maxdate
WHERE c.payment_dt BETWEEN '$start_dt' AND '$end_dt' ";
$ex = $this->db->query($sql);
$data['info'] = $ex->result();
解决方案
如果您有多个用户 ID,您的查询将产生多行。我认为您正在尝试在给定的用户 ID 上获得结果?添加这可能会有所帮助and a.user_id = '$userID'
$sql="SELECT a.usr_id, a.fname, a.lname, c.user_id, c.payment_dt
FROM user_details a
INNER JOIN payment c
ON a.usr_id = c.user_id
INNER JOIN (SELECT user_id,
Max(payment_dt) maxDate
FROM payment
GROUP BY user_id) b
ON c.user_id = b.user_id
AND c.payment_dt = b.maxdate
WHERE c.payment_dt BETWEEN '$start_dt' AND '$end_dt' and a.user_id = '$userID' ";
$ex = $this->db->query($sql);
$data['info'] = $ex->result();
推荐阅读
- excel - 除非单元格包含值,否则如何跳过?
- find - find 命令中的排除目录未正确通过管道传输到 -exec cp
- powershell - 通用列表中的 if 子句
- c# - 用户注册表单使多条记录访问数据库
- java - 如何通过 setText 方法设置定时器?
- spring-security - 带有华夫饼的 LDAP SSO
- css - 如何使用 css 网格做与此类似的事情?
- git - 撤消本地文件更改的不同命令
- geojson - Turf - 获取 geojson 的所有特征,这些特征在一个点的范围内
- database - 如何在 dynamoDB、嵌套字典或多个项目中构造数据?