我想加入這些表(task_id with post_id),它將返回您在下面看到的所有內容。這很好,但我想接下來要做的是在保留具有最高版本的項目的同時刪除task_id的重複項。獲得列x的MAX,同時在列y上獲得DISTINCT
我有一個2個表,以便:
項目
ID title task_id project_id version
1 "Test" 123 456 1
2 "Test 2" 124 456 1
3 "Test 3" 125 456 1
4 "X 3.1" 125 456 1.1
5 "X 3.2" 125 456 1.2
任務
ID post_id meta_key meta_value
1 123 _completed 0
4 124 _completed 0
5 125 _completed 0
,我有這樣的SQL語句至今:
SELECT *
FROM items t0
INNER JOIN tasks AS t1
ON t0.task_id = t1.post_id
WHERE t1.meta_key = '_completed'
AND project_id = 456
返回:
ID title task_id project_id version ID post_id meta_key meta_value
1 "Test" 123 456 1 1 123 _completed 0
2 "Test 2" 124 456 1 1 124 _completed 0
3 "Test 3" 125 456 1 1 125 _completed 0
4 "X 3.1" 125 456 1.1 1 125 _completed 0
5 "X 3.2" 125 456 1.2 1 125 _completed 0
如何刪除重複的TASK_ID的,但保持的最高版本,因此該表將是:
ID title task_id project_id version ID post_id meta_key meta_value
1 "Test" 123 456 1 1 123 _completed 0
2 "Test 2" 124 456 1 1 124 _completed 0
5 "X 3.2" 125 456 1.2 1 125 _completed 0
基本上我最近下令他們BY版本和使用GROUP BY TASK_ID但顯然SQL做不讓你這樣做。
任何人都可以想出一個很好的方法來實現這一目標嗎?
這個問題是問及SO無休止地回答。少數這些答案是正確的。此外,本手冊還深入討論了該主題。也就是說,如果你還在掙扎,請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-tobe -a-very-simple-sql-query – Strawberry
嘗試在SELECT語句中使用'MAX(version)',並在'GROUP BY'子句中使用'task_id'。 – Viki888