Php 如何按列进行选择和排序,并按不同表中的另一个键进行排序

Php 如何按列进行选择和排序,并按不同表中的另一个键进行排序,php,mysql,sql,database,group-by,Php,Mysql,Sql,Database,Group By,我正在构建一个非常简单的web应用程序来检查网站是否可用,并使用cURL调用返回http 200代码。我需要得到的域名要检查,我目前有一个选择*。我被告知它需要按域\键进行排序,最后一个\键与具有时间戳的相应域\键进行检查。通过这种方式,我们可以使用最旧的上次检查值检查域。第一个表包含以下列: ID |已创建|域|帐户ID |服务器|状态 然后我有一个详细信息表: ID |域ID |域|键|域|值 我还被告知由服务器处理请求?所以我的问题是: 如何按服务器对域进行排序或分组?这可以在一个查询中完

我正在构建一个非常简单的web应用程序来检查网站是否可用,并使用cURL调用返回http 200代码。我需要得到的域名要检查,我目前有一个选择*。我被告知它需要按域\键进行排序,最后一个\键与具有时间戳的相应域\键进行检查。通过这种方式,我们可以使用最旧的上次检查值检查域。第一个表包含以下列:

ID |已创建|域|帐户ID |服务器|状态

然后我有一个详细信息表:

ID |域ID |域|键|域|值

我还被告知由服务器处理请求?所以我的问题是:


如何按服务器对域进行排序或分组?这可以在一个查询中完成吗,或者我需要为特定服务器上的每组域使用单独的SELECT语句吗?

选择域、服务器、选择maxconvertdomain\u值、datetime from details where domainID=domains.id和domain_key='last_checked'作为last_checked
从域组中按域、服务器分组

这符合你的目的吗

select domain, server, 
(select max(convert(domain_value, datetime)) from details 
where domainID = domains.id and domain_key = 'last_checked') as last_checked 
from domains order by server, last_checked desc

这两个表之间有什么联系?表1的域是否等于表2的域ID?到目前为止,您尝试了什么SQL?是的。domainID是外键,是域表的主键。我知道我可以使用join语句按上次检查的顺序对它们进行排序,但我想知道如何按服务器对它们进行分组,最早的上次检查位于每个服务器组的顶部您是指table1.ID=table2.domainID,而不是table1.domain=table2.domainID,对吗?请编辑您的查询以添加带有表名等的SQL联接。此外,最早的上次检查是什么意思?您指的是哪个字段?这是:选择域、服务器,从详细信息中选择maxconvertdomain\u值、datetime,其中domainID=domains.id和domain\u key='last\u checked',作为域组中的last\u checked(按域、服务器);