2014-02-06 32 views
0

使用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 

我想過濾所述第二表中選擇的行(與所述第一表中的相同的id)其中area_spart的總和等於第一表的area_app;在這個例子中所得到的表應該是:

id|spart|area_spart 
    1| 1b | 1.8 
    2| 2b | 2.3 
    3| 3a | 0.6 

總area_spart = area_APP = 4.7

感謝所有!

+0

表1表2中存在'id'哪裏??? – user2727841

+0

是的,是表2的第一列 – doktoreas

+0

檢查我的(@ user2727841)答案... – user2727841

回答

0

使用INNER JOIN如果從表中使用了重複的記錄此查詢,如果您的記錄不是基於ID

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 

如果你所得到的基於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' 

並且想要得到只有一條記錄與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 
相關問題