Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取每个捐赠者的最后记录_Mysql_Sql_Database_Eloquent_Laravel 5.2 - Fatal编程技术网

Mysql 获取每个捐赠者的最后记录

Mysql 获取每个捐赠者的最后记录,mysql,sql,database,eloquent,laravel-5.2,Mysql,Sql,Database,Eloquent,Laravel 5.2,我正在为拉威尔的一个网站开发BDS功能。现在我已经试着问了两次这个问题,但不知怎么的,我不能正确地问它,所以我将尝试最后一次 我有两张桌子,一张是捐赠者的,另一张是DonorRecords的。我想知道的是,只有在过去3个月内没有献血的情况下,才能得到所有捐献者及其最新的献血日期。我试过两种方法。雄辩和质疑 以下是我正在使用的查询: SELECT donors.name, donors.mobile, donors.address, donors.blood_group, donors.area

我正在为拉威尔的一个网站开发BDS功能。现在我已经试着问了两次这个问题,但不知怎么的,我不能正确地问它,所以我将尝试最后一次

我有两张桌子,一张是捐赠者的,另一张是DonorRecords的。我想知道的是,只有在过去3个月内没有献血的情况下,才能得到所有捐献者及其最新的献血日期。我试过两种方法。雄辩和质疑

以下是我正在使用的查询:

SELECT  donors.name, donors.mobile, donors.address, donors.blood_group, donors.area, MAX(donor_records.donation_date) AS d_date FROM donor_records JOIN donors ON donors.id = donor_records.id WHERE NOW() > DATE_ADD(donor_records.donation_date, INTERVAL 90 DAY)
以下是我的数据库表中的记录

捐助者:

捐助人记录:

现在,但当我执行查询时,我只得到捐赠日期为“2016-04-12”的记录,而不是另一个。上次有人能帮我吗。不管是来自雄辩还是来自DB方面,两者都可以很好地工作

更新

与此类似,我还有另一个问题。我有一张桌子

products [id, name, price]
customer [id, name]
purchase [customer_id, product_id, timestamp]

如何获得每位客户的最后一款产品?

使用
选择DISTINCT

SELECT DISTINCT donors.Name FROM donors JOIN donorsRecord ON donors.id = donorsRecord.id
WHERE NOW() > DATE_ADD (donorRecord.donationDate, INTERVAL 3 MONTH)

如果一些捐赠者有相同的名字,那么请在查询中添加另一个字段,如出生日期或身份证号码。然后,它将显示名称和其他字段的不同组合。选择“不同的捐赠者”。从捐赠者中选择“名称”“加入捐赠者的捐赠者记录”。id=捐赠者的捐赠者记录。id,其中NOW()>DATE\u ADD(捐赠者记录。捐赠者日期,间隔3个月);上面是我的查询,现在它在最后给出了一个错误。语法正确吗?错误:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第2行的“限制0,25”附近使用的正确语法。出现以下错误:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第2Fixed行使用“按id限制0,25”的正确语法。这是一个介于日期和之间的空格(先生,你是什么意思?好的,现在还有一件事。如果我想获取所选捐赠者的最新捐赠日期,该怎么办?我将在什么时候写入查询类型?添加以选择最大值(donorRecord.donationDate)
donorRecord
donorRecord
?使用任意一个,我将在执行查询时更改它。
where donorRecord.donationDate>NOW()间隔3个月< /代码>我怀疑有任何问题,“被接受”的答案是正确的。但是如果没有更清楚地解释你的问题,那么有点难以确定。如果你愿意,考虑下面这个简单的两步行动:1。如果你还没有这样做,提供适当的创建和插入语句。(和/或sqlfiddle)以便我们可以更轻松地复制问题。2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。我只是使用Laravel Eloquent插入数据。$provider-save();
SELECT donors.Name FROM donors JOIN donorsRecord ON donors.id = donorsRecord.id
WHERE NOW() > DATE_ADD(donorRecord.donationDate, INTERVAL 3 MONTH)
group by donors.id;