问候,我有一个查询,我正在努力,这是我第一次遇到这种类型的查询。 我有两个表,如下所示。MySQL SUM查询
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
下面是查询的部分exlanation,然后需要组成整个查询。
我需要qnty的child_tbl2总和:
1)谁是父母的酒吧是 '1' 因此,ID 5是从child_tbl2淘汰,这是因为XID 3是parent_tbl1 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),谁是父表有Af - Ag型“A”子表 因此,ID 3是从现有的结果中删除了,因为ID为3的Af - Ag型为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)和谁的家长有 '0' 作为一个它的FNO的在child_tbl2 因此,ID 4,6 & 7从现有结果消除,这是因为0并没有在他们的FNO的发现之一,而0是
结果发现作为XID 1的FNO之一: 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)来检查Zero是否是fno的一个。 如果我说“AND child_tbl2.fno ='0'”,我会说结果的fno应该是0.我不希望这样,我需要零才能成为查询的SUM之一在特定的xid中qnty
嗨,应该“src.qty”是“child_tbl2”? – Nich 2010-09-10 12:18:14
编号'AS'给出一个表或列的别名,应该在任何地方使用。 – 2010-09-10 12:25:00
我用parent_tbl1和tbl2替换了tbl1和child_tbl2,这是我得到的错误 - #1054 - '字段列表'中的未知列'src.qty'任何想法? – Nich 2010-09-10 12:35:30