MySQL select orderby date返回重复的值

MySQL select orderby date返回重复的值,mysql,sql,mariadb-10.3,Mysql,Sql,Mariadb 10.3,我想得到每一个用户和他们的最后付款。我这里有两张表,分别是用户和财务。我尝试添加groupby,得到了我想要的结果,但它得到了另一个表中最早的记录。有人知道我怎样才能做到这一点吗 我的第一个问题 SELECT users.name, users.email, users.phone, users.parent_id, users.section_id, finances.amount, finances.description, schoolyears.name, finances.date

我想得到每一个用户和他们的最后付款。我这里有两张表,分别是
用户
财务
。我尝试添加
groupby
,得到了我想要的结果,但它得到了另一个表中最早的记录。有人知道我怎样才能做到这一点吗

我的第一个问题

SELECT users.name, users.email, users.phone, users.parent_id, users.section_id, finances.amount, finances.description, schoolyears.name, finances.date 
from users 
JOIN finances on users.id = finances.user_id 
JOIN schoolyears on users.school_id = schoolyears.school_id 
ORDER BY finances.date DESC;
我得到的结果

+-----------------+------------------------------+--------------------+-----------+------------+--------+--------------+--------------+------------+
| name            | email                        | phone              | parent_id | section_id | amount | description  | name         | date       |
+-----------------+------------------------------+--------------------+-----------+------------+--------+--------------+--------------+------------+
| Madelynn Stokes | moore.dominic@cartwright.com | +63 (971) 659-8143 |        10 |       NULL | 1000   | New Payables | SY-2019-2020 | 2019-11-14 |
| Annamarie Morar | emile99@hotmail.com          | (0997) 212-7919    |         3 |       NULL | 500    | New Pays     | SY-2019-2020 | 2019-11-14 |
| Madelynn Stokes | moore.dominic@cartwright.com | +63 (971) 659-8143 |        10 |       NULL | 5000   | Old Payables | SY-2019-2020 | 2019-11-13 |
| Annamarie Morar | emile99@hotmail.com          | (0997) 212-7919    |         3 |       NULL | 200    | Old Pays     | SY-2019-2020 | 2019-11-13 |
+-----------------+------------------------------+--------------------+-----------+------------+--------+--------------+--------------+------------+
我只想要其他表中的最新记录。新的应付款和新的付款

我尝试了第二个问题

SELECT users.name, users.email, users.phone, users.parent_id, users.section_id, finances.amount, finances.description, schoolyears.name, finances.date 
from users 
JOIN finances on users.id = finances.user_id 
JOIN schoolyears on users.school_id = schoolyears.school_id 
GROUP BY users.id 
ORDER BY finances.date DESC;
它是有效的,但我有最古老的记录

+-----------------+------------------------------+--------------------+-----------+------------+--------+--------------+--------------+------------+
| name            | email                        | phone              | parent_id | section_id | amount | description  | name         | date       |
+-----------------+------------------------------+--------------------+-----------+------------+--------+--------------+--------------+------------+
| Madelynn Stokes | moore.dominic@cartwright.com | +63 (971) 659-8143 |        10 |       NULL | 5000   | Old Payables | SY-2019-2020 | 2019-11-13 |
| Annamarie Morar | emile99@hotmail.com          | (0997) 212-7919    |         3 |       NULL | 200    | Old Pays     | SY-2019-2020 | 2019-11-13 |
+-----------------+------------------------------+--------------------+-----------+------------+--------+--------------+--------------+------------+
你可以在下面试试-

SELECT users.name, users.email, users.phone, users.parent_id, users.section_id, finances.amount, finances.description, schoolyears.name, finances.dateval 
from users 
JOIN finances on users.id = finances.user_id 
JOIN schoolyears on users.school_id = schoolyears.school_id 
where finances.dateval=
(select max(dateval) from finances f where finances.user_id=f.user_id)

您真的应该在发布查询之前测试一下。谢谢先生!你能向我解释一下你做了什么吗,先生?@Vince,出现了一个语法错误bro:)而不是我使用的“on:”)我正试图将其转换为laravel querybuilder,但很难看出GROUP BY是无效的,它不会在较新的MySQL版本上执行(除非在兼容模式下)。你通常按照选择的相同列进行分组,除了那些设置函数的参数。您使用的是哪个MySQL版本?MariaDB 10.3.1、phpMyAdmin 4.9.0.1、PHP7.3.7