获取所有最新日期的记录[错误]

l2osamch  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(333)

我有一个表,我想返回所有记录的名字和父亲的名字与最新的数据,应该是动态的,每当一个新的最新日期被插入返回该记录。我试过了

  1. SELECT rh.firstname, rh.fathername, rh.bloodonation_date
  2. FROM personprofile rh,
  3. (SELECT MAX(bloodonationdate) AS maxdate, firstname
  4. FROM report_history
  5. GROUP BY firstname) maxresults
  6. WHERE rh.firstname= maxresults.firstname
  7. AND rh.bloodonation_date= maxresults.bloodonation_date;

如果我有这张table

  1. firstname, fathername,bloodonation_date
  2. --------------------------
  3. Ahmed issa 2018-12-24
  4. Noora issa 2018-12-21
  5. Joseph John 2018-12-24
  6. Ash Scott 2018-12-24
  7. Isacf jaack 2018-12-24
  8. Ashley Make 2018-12-24
  9. James Ma 2018-12-20
  10. cd cd 2018-12-24
  11. cde cde 2018-12-24
  12. Marc Mac 2018-12-16
  13. Noora Ahmed 2018-12-15
  14. Rabeew fbdb 2018-11-15

我怎样才能让它回来

  1. firstname, fathername,bloodonation_date
  2. --------------------------
  3. Ahmed issa 2018-12-24
  4. Joseph John 2018-12-24
  5. Ash Scott 2018-12-24
  6. Isacf jaack 2018-12-24
  7. Ashley Make 2018-12-24
  8. cd cd 2018-12-24
hmtdttj4

hmtdttj41#

您可以尝试使用关联子查询。
架构(mysql v5.7)

  1. CREATE TABLE T(
  2. firstname VARCHAR(50),
  3. fathername VARCHAR(50),
  4. bloodonation_date DATE
  5. );
  6. INSERT INTO T VALUES ('Ahmed','issa','2018-12-24');
  7. INSERT INTO T VALUES ('Noora','issa','2018-12-21');
  8. INSERT INTO T VALUES ('Joseph','John','2018-12-24');
  9. INSERT INTO T VALUES ('Ash','Scott','2018-12-24');
  10. INSERT INTO T VALUES ('Isacf','jaack','2018-12-24');
  11. INSERT INTO T VALUES ('Ashley','Make','2018-12-24');
  12. INSERT INTO T VALUES ('James','Ma','2018-12-20');
  13. INSERT INTO T VALUES ('cd','cd','2018-12-24');
  14. INSERT INTO T VALUES ('cde','cde','2018-12-24');
  15. INSERT INTO T VALUES ('Marc','Mac','2018-12-16');
  16. INSERT INTO T VALUES ('Noora','Ahmed','2018-12-15');
  17. INSERT INTO T VALUES ('Rabeew','fbdb','2018-11-15');

查询#1

  1. SELECT *
  2. FROM T
  3. WHERE bloodonation_date = (
  4. SELECT MAX(bloodonation_date)
  5. FROM T
  6. );
  7. | firstname | fathername | bloodonation_date |
  8. | --------- | ---------- | ----------------- |
  9. | Ahmed | issa | 2018-12-24 |
  10. | Joseph | John | 2018-12-24 |
  11. | Ash | Scott | 2018-12-24 |
  12. | Isacf | jaack | 2018-12-24 |
  13. | Ashley | Make | 2018-12-24 |
  14. | cd | cd | 2018-12-24 |
  15. | cde | cde | 2018-12-24 |

db fiddle视图

展开查看全部
2skhul33

2skhul332#

您可以在此处使用子查询:
select*from personprofile where bloodonation\u date=(select max(bloodonation\u date)from personprofile)order by 1,勾选此处的解决方案

相关问题