![](/img/trans.png)
[英]MySQL select from multiple records only records with first and last date
[英]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.