我有兩個查詢我試圖加入到一起,所以我不必一個接一個地執行,因爲在某些情況下我想更改輸出順序。MySQL獲取最新日期從哪裏依賴最新插入
第一個查詢獲取發票狀態。它更改爲保留日誌,但99%的時間,我只需要檢查最新的條目。佈局是如下:
providers_invoice_status_ID,providers_invoice_summary_ID,STATUS_ID, userinfo_ID,providers_invoice_status_date
SELECT providers_invoice_summary_ID
FROM db_providers_invoice_status
WHERE status_ID = '$status'
ORDER BY providers_invoice_status_date DESC
發票表格然後,基於上述查詢的結果進行查詢。它的佈局如下。
providers_invoice_summary_ID,providers_invoice_summary_file,providers_invoice_summary_total,providers_invoice_summary_due,providers_invoice_summary_generated
SELECT si.providers_invoice_summary_ID
, providers_invoice_summary_file
, providers_invoice_summary_total
, providers_invoice_summary_due
, providers_invoice_summary_generated
FROM db_providers_invoice_summary si
WHERE providers_invoice_summary_ID = '$invoice_ID';
月嘗試合併查詢,導致了這一點:
SELECT si.providers_invoice_summary_ID
, providers_invoice_summary_file
, providers_invoice_summary_total
, providers_invoice_summary_due
, providers_invoice_summary_generated
, s.status_ID
FROM db_providers_invoice_summary si, db_providers_invoice_status s
WHERE status_ID = (SELECT status_ID
FROM db_providers_invoice_status
WHERE providers_invoice_summary_ID = si.providers_invoice_summary_ID
AND status_ID = 7
ORDER
BY providers_invoice_status_date DESC
LIMIT 1)
然而,它拉一切從結果狀態記錄表,其中status_ID = 7,所以不太瞭解最新情況插入(狀態可能已經更改爲8,因此不需要invoice_ID)。我嘗試過使用ORDER BY,但它只對所有結果排序,而不是我之後的子集。
對此的任何幫助將非常感激。希望這對讀者來說是相當清楚的,我知道它非常複雜。
編輯數據:
發票表:
providers_invoice_summary_ID providers_invoice_summary_file providers_invoice_summary_total providers_invoice_summary_due providers_invoice_summary_generated
----------------------------------------------------------------------------------------------------------------------------------------------------------
4 | ../blah/blah.jpg | 245.63 | 2014-04-20 | 2014-03-14
5 | ../blah/blah.jpg | 456.89 | 2014-04-20 | 2014-03-12
6 | ../blah/blah.jpg | 125.36 | 2014-04-24 | 2014-03-12
狀態表:
providers_invoice_status_ID providers_invoice_summary_ID status_ID userinfo_ID providers_invoice_Status_date
------------------------------------------------------------------------------------------------------------
4 | 4 | 7 | 7 | 2014-03-14 10:19:41
5 | 5 | 7 | 7 | 2014-03-12 10:22:41
6 | 6 | 7 | 7 | 2014-03-24 10:15:38
7 | 5 | 8 | 7 | 2014-03-26 11:15:14
我希望拿到2張發票出這個數據的,作爲兩個發票目前有他們的最新狀態設置爲7.希望這可以進一步澄清事情。
如果是我,我會簡化問題有點開始。 – Strawberry
並學習正確的連接語法。隱式連接只會使查詢更難理解。 –
簡化。能夠幫助我嗎? –