[英]MySQL query: select all ID's and corresponding max value from other table
我想要的是:從 table1 中選擇所有 ID,從 table2 中選擇最大值。 如果 table2 不包含 id,則 0 是其最大值。 到目前為止我得到的查詢:
SELECT t1.Id, max(t2.value) FROM table1 t1 JOIN table2 t2 USING(Id) GROUP BY t2.Id;
但是這個查詢的問題是它只返回一個 id 如果它在兩個表中。 如何從 table1 中選擇所有 id 並從 table2 中選擇 0 或最大值?
這是使用 LEFT 連接的情況:
SELECT t1.Id, coalesce(max(t2.value), 0)
FROM table1 t1 LEFT JOIN table2 t2
USING(Id)
GROUP BY t1.Id;
我還將 GROUP BY 子句更改為使用t1.id
而不是t2.id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.