簡體   English   中英

從mysql中的多行中選擇最后一個日期

[英]Select the last date from multiple rows in mysql

所以我有一個小問題:我的用戶可以多次輸入測試。 我想將用戶上次測試的結果與用戶表進行內部連接。

表格:用戶,測試結果

我有點堅持語法,現在就這樣

SELECT USERS.*, TESTRESULTS.result
FROM USERS
INNER JOIN TESTRESULTS
ON USERS.id = TESTRESULTS.user_id
WHERE TESTRESULTS.date IN (SELECT id, MAX(date) FROM TESTRESULTS GROUP BY id)

我想實現的是:

user_id, (latest result for test)
1, 98
2, 77
3, 100

用戶可以根據需要進行任意數量的測試,但只有最后一個才算重要。

幫助將不勝感激:)

編輯2:使用的查詢返回一個SQL錯誤。

CREATE TABLE passie_users AS
    SELECT users.*, assesspassionresults.score_data, assesspassionresults.score_ideas, assesspassionresults.score_people, assesspassionresults.score_things,
    FROM users
    INNER JOIN assesspassionresults
        ON users.id = assesspassionresults.user_id
    WHERE assesspassionresults.status = 'active'
    AND (users.id, assesspassionresults.modified) IN (SELECT id, max(modified) FROM assesspassionresults);

編輯:不正確的答案,我很抱歉!

SELECT USERS.*, TESTRESULTS.result, max(TESTRESULTS.date)
FROM USERS
   INNER JOIN TESTRESULTS
       ON USERS.id = TESTRESULTS.user_id
GROUP BY TESTRESULTS.date;

您在IN()語句中缺少了一些東西:

SELECT USERS.*, TESTRESULTS.result
FROM USERS
INNER JOIN TESTRESULTS
ON USERS.id = TESTRESULTS.user_id
WHERE (users.id,TESTRESULTS.date) IN (SELECT user_id, MAX(date) FROM TESTRESULTS GROUP BY user_id)

使用IN()時,必須比較相同數量的參數和相同類型。

暫無
暫無

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

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