使用PostgreSQL,我试图使用另一个数据从表中过滤数据。这是一个例子:
表1:
id|app|area_app
1| A | 4.7
2| A | 4.7
3| A | 4.7
表2:
id|spart|area_spart
1| 1a | 1.2
1| 1b | 1.8
2| 2a | 2.1
2| 2b | 2.3
3| 3a | 0.6
我想过滤第二个表,选择第一个表的area_spart
总和等于第一个表的area_app
的行(第一个表的id相同);在此示例中,结果表应为:
id|spart|area_spart
1| 1b | 1.8
2| 2b | 2.3
3| 3a | 0.6
总area_spart = area_APP = 4.7
谢谢大家!
答案 0 :(得分:0)
如果您从表中获取重复记录,请使用INNER JOIN
SELECT table1.id,table2.spart,SUM(table2.area_spart) AS area_spart FROM table1 INNER JOIN table2 ON (table1.id = table2.id) GROUP BY table1.id
如果您正在获取基于身份的记录,请使用此
SELECT table1.id,table2.spart,SUM(table2.area_spart) AS area_spart FROM table1 INNER JOIN table2 ON (table1.id = table2.id) WHERE table1.id = 'your_id'
如果您的记录不是基于ID而只想获得一条记录,请尝试使用LIMIT
SELECT table1.id,table2.spart,SUM(table2.area_spart) AS area_spart FROM table1 INNER JOIN table2 ON (table1.id = table2.id) LIMIT 1