簡體   English   中英

MySQL為表中的每個ID選擇最新的1行

[英]MySQL Select latest 1 row for each ID in table

我有一個名為sw_practice的表,其中填充了組織,還有一個名為sw_invoices的表,其中包含每個組織的發票數據。

在sw_invoices中,可能有多個發票(具有遞增的唯一ID列)與具有自己的ID(Prac_ID)的組織鏈接。

我正在嘗試獲取所有組織的清單(無論是否已開具發票),但每個組織只有1個條目,因此,如果已開具發票,則僅顯示最新展覽。

我努力了:

SELECT * FROM sw_practices as p LEFT JOIN sw_invoices as i ON p.Prac_ID = i.Prac_ID WHERE p.Active = '2' ORDER BY i.Inv_ID DESC LIMIT 1

但這僅顯示所有這些中的最新行。

而且,如果我從末尾刪除LIMIT 1,它會顯示所有數據,但對於某些組織會顯示多個條目。

我希望查詢說“從sw_practices WHERE Active = 2中全選並顯示其發票數據,但對於每個不同的Prac_ID僅顯示最新的1”

使用分組依據:

SELECT * FROM sw_practices as p LEFT JOIN (Select * FROM sw_invoices ORDER BY Prac_ID DESC )as i ON p.Prac_ID = i.Prac_ID WHERE p.Active = '2' GROUP BY p.Prac_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM