Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/149.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
MySQL总和查询_Mysql - Fatal编程技术网

MySQL总和查询

MySQL总和查询,mysql,Mysql,您好,我有一个查询,我正在挣扎,这是我第一次遇到这种类型的查询。 我有两张表,如下所示 xid是父\u tbl1中的主键,而xid是子\u tbl2中的外键 id ttype fno xid qnty 1 A 0 1 0 2 A 1 1 3 3 B 1 1 4 4 A 1 2 1 5 A 1 3 2 6 A 1 4 3 7 A

您好,我有一个查询,我正在挣扎,这是我第一次遇到这种类型的查询。 我有两张表,如下所示

xid是父\u tbl1中的主键,而xid是子\u tbl2中的外键

id ttype fno xid  qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1  
5  A       1    3    2
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
8  A       1    1    1
家长

xid pub 
1    1    
2    1    
3    0    
4    1
儿童

id ttype fno xid  qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1  
5  A       1    3    2
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
8  A       1    1    1
下面是查询的部分解释,然后需要组成整个查询

我需要qnty的总和,以child_tbl2为单位:

1) 谁的父母的酒吧是“1” 因此,ID5从子_tbl2中被消除,这是因为在父_tbl1中XID3是0

xid pub 
1    1    
2    1    
3    0    
4    1
结果: 儿童

id ttype fno xid  qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1  
5  A       1    3    2
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
8  A       1    1    1
2) 而谁的父表在子表中具有类型“A” 因此,ID3从现有结果中删除,因为ID3的ttype是B

结果: 儿童

id ttype fno xid  qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1  
5  A       1    3    2
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
8  A       1    1    1
3) 谁的父母将“0”作为一个,这是fno在child\u tbl2中 因此,id 4、6和7被从现有结果中删除,这是因为在他们的fno中没有找到0,而在xid 1的fno中发现了0

结果: 儿童

id ttype fno xid  qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1  
5  A       1    3    2
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
3  B       1    1    4
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
4  A       1    2    1
6  A       1    4    3
7  A       1    4    1
8  A       1    1    1
id ttype fno xid qnty
1  A       0    1    0
2  A       1    1    3
8  A       1    1    1
查询的答案应该是4

下面是我得到的

SELECT sum(child_tbl2.qnty), parent_tbl1.xid, parent_tbl1.pub, child_tbl2.ttype, child_tbl2.fno, child_tbl2.xid 
FROM parent_tbl1, child_tbl2
WHERE parent_tbl1.xid = child_tbl2.xid
AND parent_tbl1.pub = '1'
AND child_tbl2.ttype = 'A'

AND child_tbl2.fno ? 
如果可能的话,我不知道如何告诉dbms(MySQL)检查Zero是否是fno之一。
如果我说“AND child_tbl2.fno='0',我会说结果的fno应该是0。我不希望这样,我需要零作为fno之一,以便查询对该特定xid中的所有qnty求和

Hi,“src.qty”应为“child_tbl2”?否。
AS
为表或列提供了一个应该在任何地方使用的别名。我将tbl1替换为parent_tbl1,将tbl2替换为child_tbl2,这是我得到的错误-#1054-字段列表中的未知列“src.qty”有什么想法吗?
SELECT SUM(DISTINCT src.qnty) as qnty
FROM tbl2 AS src
INNER JOIN tbl1 AS pub
  ON src.xid=pub.xid
INNER JOIN tbl2 AS fno
  ON pub.xid=fno.xid
WHERE pub.pub=1
  AND src.ttype='A'
  AND fno.fno=0