我有两个查询我试图加入到一起,所以我不必一个接一个地执行,因为在某些情况下我想更改输出顺序。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
并学习正确的连接语法。隐式连接只会使查询更难理解。 –
简化。能够帮助我吗? –