Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用另一个表的和值筛选表_Sql_Postgresql - Fatal编程技术网

Sql 使用另一个表的和值筛选表

Sql 使用另一个表的和值筛选表,sql,postgresql,Sql,Postgresql,在使用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\

在使用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\u spart
之和等于第一个表的
area\u app
的行(具有与第一个表相同的id);在本例中,结果表应为:

 id|spart|area_spart
  1| 1b  |   1.8
  2| 2b  |   2.3
  3| 3a  |   0.6
总面积=spart=面积=4.7


谢谢大家

使用
内部联接
如果要从表中获取重复记录,请使用此查询

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'
如果您的记录不基于id,并且只想获取一条记录,请使用
限制尝试此记录

SELECT table1.id,table2.spart,SUM(table2.area_spart) AS area_spart FROM table1 INNER JOIN table2 ON (table1.id = table2.id) LIMIT 1

表1
id
是否存在于表2中???其中???是的,表2的第一列是检查我的(@user2727841)答案…你检查了我的(@user2727841)答案吗???请仔细检查你想要的输出-这没有意义,因为没有一个值加起来等于4.7(按id分组)。例如:id=1 sum(area_spart)=(1.2+1.8)=3.0,但它包含在最终输出中。怎么会?