簡體   English   中英

mysql查詢以獲得獨特和最新的記錄

[英]mysql query for getting distinct and lastest record

我做了一個視圖(聯接四個表),如下所示:

ID  |  BookID  |    date    |  points  |
 1  |    11    | 2014-11-01 |    15    |
 1  |    11    | 2015-01-01 |    16    |
 1  |    11    | 2014-12-01 |    17    |
 1  |    12    | 2014-02-11 |    18    |
 1  |    12    | 2014-03-11 |    19    |
 1  |    12    | 2014-04-11 |    15    |
 1  |    13    | 2014-12-23 |    121   |
 1  |    14    | 2014-01-15 |    113   |
 1  |    14    | 2014-02-08 |    112   |

我想要這個視圖的結果如下

ID  |  BookID  |    Date     |  points  |
 1  |    11    |  2015-01-01 |    16    |
 1  |    12    |  2014-04-11 |    15    |
 1  |    13    |  2014-12-23 |    121   |
 1  |    14    |  2014-02-08 |    112   |

它應該類似於具有最大日期並顯示為單獨點的非重復圖書ID。 到目前為止,我已經嘗試了使用join和group by with date進行分組。 但這有點麻煩了,因為我無法找到解決方案。

我的查詢是:

SELECT m1.* FROM viewPoints m1 LEFT JOIN viewPoints m2 
ON (m1.BookID = m2.BookID AND m1.Date < m2.Date)
WHERE m1.ID= 1 and m2.Date IS NULL

ORDER BY m1.BookID

任何幫助! 提前致謝。

也許這就是您想要的?

select v.* 
from viewPoints v
join (
    select 
       BookID, 
       max(date) max_date 
    from viewPoints
    where points is not null 
    group by BookID
) v2 on v.BookID = v2.BookID and v.date = v2.max_date
where v.points is not null
order by v.BookID

示例SQL提琴

樣本輸出:

| ID | BOOKID |                            DATE | POINTS |
|----|--------|---------------------------------|--------|
|  1 |     11 |  January, 01 2015 00:00:00+0000 |     16 |
|  1 |     12 |    April, 11 2014 00:00:00+0000 |     15 |
|  1 |     13 | December, 23 2014 00:00:00+0000 |    121 |
|  1 |     14 | February, 08 2014 00:00:00+0000 |    112 |
CREATE VIEW [BOOKLIST] AS
SELECT m1.* FROM viewPoints m1 LEFT JOIN viewPoints m2 
ON (m1.BookID = m2.BookID AND m1.Date < m2.Date)
WHERE m1.ID= 1 and m2.Date IS NULL
ORDER BY m1.BookID    

SELECT ID, DISTINCT BookID, Date, points FROM BOOKLIST
WHERE Date BETWEEN "start date" AND "end date"
SELECT * 
 FROM tablename
  WHERE DATE
 IN (

   SELECT MAX( DATE ) 
   FROM tablename
   GROUP BY bookid
   ORDER BY DATE DESC
  )
 ORDER BY DATE DESC 

暫無
暫無

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

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