簡體   English   中英

MySQL查詢:從其他表中選擇所有ID和相應的最大值

[英]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.

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