我有两张桌子:
**T1**
ID |Transaction| amount |
1 |trans1 | 97 |
1 |trans2 | 22 |
2 |trans7 | 98 |
**T2**
ID |description|spec|
1 |Item 1 |text|
2 |Item 2 |zip |
注意:两个表中的ID列都是相同的。但是,表T1中的ID不是唯一的。
我需要查询从表中检索数据,但只需要具有最高金额的行(表T1)。示例结果:
ID|description|spec|transaction|amount|
1 |item1 |text| trans1 | 97 |
2 |item2 |zip | trans7 | 98 |
请帮助!
谢谢。
答案 0 :(得分:1)
您应该使用此查询为T2
中的每个ID获取一行SELECT ID, MAX(AMOUNT) AS AMT FROM T1 GROUP BY ID
然后将第一个表加入其中并选择您需要的所有表。所以它看起来像这样:
SELECT T2.ID,
description,
spec,
transaction ,
AMT
FROM T2
JOIN
(SELECT ID, MAX(AMOUNT) AS AMT FROM T1 GROUP BY ID
) T3
ON T3.ID=T2.ID;
注意:我在您的数据库中使用了Oracle,您可能需要修改查询以解决关键字冲突。
答案 1 :(得分:0)
尝试以下查询:
SELECT ID, description, spec, `transaction` , amt
FROM T2
JOIN
(SELECT ID, `transaction`, MAX(amount) AS amt FROM T1 GROUP BY ID) AS T3
ON T3.ID=T2.ID
注意,因为单词transaction
可能是保留关键字。您可以随时用刻度标记(如上所述)