gpt4 book ai didi

MySQL SUM 查询

转载 作者:可可西里 更新时间:2023-11-01 08:38:06 24 4
gpt4 key购买 nike

您好,我遇到了一个正在努力解决的查询,这是我第一次遇到这种类型的查询。我有两个表,如下所示。

xid是parent_tbl1中的主键,而xid是child_tbl2中的外键

parent_tbl1

xid pub 
1 1
2 1
3 0
4 1

child_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

下面是部分查询的解释,然后需要组成整个查询。

我需要 child_tbl2 中的数量总和:

1) 谁的 parent 的酒馆是“1”因此,从child_tbl2中剔除id 5,这是因为parent_tbl1中xid 3为0

结果:child_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
6 A 1 4 3
7 A 1 4 1
8 A 1 1 1

2) AND 谁的父表在子表中有 ttype 'A'因此,id 3从现有结果中被淘汰,因为id 3的ttype是B

结果:child_tbl2

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

3) AND who's parent 在 child_tbl2 中有 '0' 作为 fno因此,id 4, 6 & 7 从现有结果中剔除,这是因为在它们的一个 fno 中没有找到 0,而在 xid 1 的 fno 中找到了 0

结果:child_tbl2

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) 检查零是否是 fno 之一。如果我说“AND child_tbl2.fno = '0'”,我会说结果的 fno 应该是 0。我不希望这样,我需要零成为 fno 之一,以便查询对所有该特定 xid 中的数量

最佳答案

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

关于MySQL SUM 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3684409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com