按帐号显示MYSQL中每个注册的最新行
我需要使用下面的选择按钮生成一个条目列表。该列表必须是每个项目的最新条目。当我尝试使用GROUPBY时,它似乎仍然无法为每个字段获取最新条目。我尝试过使用MAX(ID)和MAX(CONDATE),但这似乎只是用最新数据填充了该字段,而其他字段不是来自同一行 如果我有多个条目具有相同的电子邮件、LDC_账户等,我如何生成列表以仅显示每个LDC_账户的多个条目中的最新条目按帐号显示MYSQL中每个注册的最新行,mysql,Mysql,我需要使用下面的选择按钮生成一个条目列表。该列表必须是每个项目的最新条目。当我尝试使用GROUPBY时,它似乎仍然无法为每个字段获取最新条目。我尝试过使用MAX(ID)和MAX(CONDATE),但这似乎只是用最新数据填充了该字段,而其他字段不是来自同一行 如果我有多个条目具有相同的电子邮件、LDC_账户等,我如何生成列表以仅显示每个LDC_账户的多个条目中的最新条目 select ID, email, LDC_ACCT, LDC_KEY, FI
select
ID,
email,
LDC_ACCT,
LDC_KEY,
FIRST_NAME,
LAST_NAME,
ServiceAddress1,
ServiceAddress2,
CITY,
STATE,
ZIP,
date(ContractExpirationDate) AS 'ContractExpiration',
date(CONTDATE) AS 'LatestEnrollmentDate',
ldc_last4
from elec_cust
首先获取LDC_账户每个不同值的最新ID值列表
SELECT MAX(ID) ID, LDC_ACCT FROM table GROUP BY LDC_ACCT
然后从表中获取这些行
SELECT * FROM table WHERE
ID IN ( SELECT MAX(ID) ID, LDC_ACCT FROM table GROUP BY LDC_ACCT)
这假设ID值较高的行比ID值较低的行晚。尝试此查询以获取LDC账户的最新信息。最新信息被视为具有最新CONTDATE的信息
SELECT * FROM
elec_cust a,
(
SELECT LDC_ACCT, MAX(CONTDATE) AS MAX_CONT_DATE
FROM elec_cust
GROUP by LDC_ACCT
) b
WHERE
a.LDC_ACCT = b.LDC_ACCT
AND a.CONTDATE = b.MAX_CONT_DATE;
由于您的SELECT语句中似乎没有任何聚合函数(也不打算有聚合函数),因此这也适用于:
SELECT
t.ID,
t.email,
t.LDC_ACCT,
t.LDC_KEY,
t.FIRST_NAME,
t.LAST_NAME,
t.ServiceAddress1,
t.ServiceAddress2,
t.CITY,
t.STATE,
t.ZIP,
date(t.ContractExpirationDate) AS 'ContractExpiration',
date(t.CONTDATE) AS 'LatestEnrollmentDate',
t.ldc_last4
FROM (SELECT * FROM elec_cust ORDER BY ID DESC) t
GROUP BY t.LDC_ACCT
谢谢奥雷林-问题:“t”在你的回答中指的是什么?谢谢-这让我达到了我需要的地方。