[英]MySQL 5.5 select MAX from table2 for every unique id in table1
我有兩個表:
table1 table2
column id column id column value
1 1 count_20
2 1 count_30
3 2 count_20
4 2 count_50
... 2 count_200
3 count_30
3 count_50
3 count_200
4 count_130
... ...
我想構建一個查詢,該查詢將從table1, column id
每一行table1, column id
以及從table2
的相應column value
選擇MAX
值,並將DESC
縮寫為int
in value
column。
因此輸出應為:
table1.id value
2 count_200
3 count_200
4 count_130
1 count_30
... ...
我嘗試了JOIN
但是隨后,對於table2
每個value
(count_%)
,我都從table1
獲得了相應的id
。
SELECT table1.id, table2.id, table2.value FROM table1
LEFT JOIN table2
ON table2.id=table1.id
WHERE table1.id<'100'
ORDER BY
CASE value
WHEN 'count_20' THEN '20'
END DESC,
CASE value
WHEN 'count_30' THEN '30'
END DESC,
CASE value
WHEN 'count_50' THEN '50'
END DESC,
CASE value
WHEN 'count_130' THEN '130'
END DESC,
CASE value
WHEN 'count_200' THEN '200'
END DESC;
輸出:
table1.id table2.id value
2 2 count_200
3 3 count_200
4 4 count_130
2 2 count_50
3 3 count_50
1 1 count_30
3 3 count_30
1 1 count_20
2 2 count_20
... ...
任何幫助,將不勝感激。
試試看:
select t2.id,
'count_' + cast(max(cast(replace(t2.value, 'count_', '') as int)) varchar) intValue
from table1 t1
join table2 t2 on t1.id = t2.id
group by t2.id
order by max(cast(replace(t2.value, 'count_', '') as int)) desc
結果是:
+----+-----------+ | ID | VALUE | +----+-----------+ | 2 | count_200 | | 3 | count_200 | | 4 | count_130 | | 1 | count_30 | +----+-----------+
在這里擺弄。
http://www.w3schools.com/sql/sql_distinct.asp進行檢查。 這只會顯示一次值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.