2014-05-15 85 views
0

我正在構建一個非常簡單的Web應用程序,以檢查網站是否可用(返回http 200代碼)使用cURL調用。我需要得到的域被檢查,我目前有一個SELECT *。我被告知需要使用具有時間戳的相應domain_key按domain_key(last_checked)進行排序。這樣我們可以用最舊的last_checked值來檢查域。第一個表有以下欄目:如何MySQL選擇和按列排序並按另一個表中的另一個鍵排序

ID | CREATED | DOMAIN | accountID | server | status

然後,我有一個細節表:

ID | domainID | domain_key | domain_value

我也被告知要處理由服務器的請求?所以我的問題是:

我該如何命令或分組服務器域?有可能在一個查詢中完成,或者我需要爲特定服務器上的每個域組使用單獨的SELECT語句嗎?

+0

這兩個表之間的連接是什麼?表1的域是否等於表2的域ID?你到目前爲止嘗試過哪些SQL? – Swagata

+0

是的。 domainID是外鍵,是域表的主鍵。我知道我可以使用join語句通過last_checked來命令它們,但我想知道如何通過服務器將它們分組,然後在每個服務器組頂部檢查最舊的最後一個 – bbbbbbbbbb

+0

您的意思是table1.ID = table2.domainID而不是table1 .domain = table2.domainID,對嗎?請編輯您的查詢以添加SQL JOIN以及表名等。此外,您是指「最早的最後一次檢查」是什麼意思?你指的是哪個領域? – Swagata

回答

0

選擇域,服務器,(選擇最大值(轉換從那裏 域ID = domains.id和domain_key = 'last_checked' 細節(domain_value,日期時間)))由域,服務器從域組作爲last_checked ;

0

這是否符合您的要求?

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 
相關問題