Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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_Vb.net - Fatal编程技术网

Mysql 如何从另一个表中获取子列的和

Mysql 如何从另一个表中获取子列的和,mysql,vb.net,Mysql,Vb.net,我有一个可以获取会员信息的系统。我想让我的系统自动获得获奖者的名字。条件是,如果会员招募了6人,他/她销售了15种肥皂,他/她的下线销售了15种肥皂。我使用mysql和VB.NET,到目前为止我有这个查询 SELECT * FROM members m LEFT JOIN geneology g ON SUM(m.status) >=90 AND m.upline = g.parent_id; 但我明白了 1111错误-组函数的使用无效

我有一个可以获取会员信息的系统。我想让我的系统自动获得获奖者的名字。条件是,如果会员招募了6人,他/她销售了15种肥皂,他/她的下线销售了15种肥皂。我使用mysql和VB.NET,到目前为止我有这个查询

SELECT  *
FROM    members m
LEFT JOIN
        geneology g
ON      SUM(m.status) >=90 AND
        m.upline = g.parent_id;
但我明白了

1111错误-组函数的使用无效

表1有两列

id, name, status 'This is where the soap data are stored', downlines, upline
id, parent_id, child_id
表2有两列

id, name, status 'This is where the soap data are stored', downlines, upline
id, parent_id, child_id

请帮助我了解sql查询

首先,上的
子句定义了用于匹配两个表的行的条件,因此
SUM()>=90
不应该停留在那里(事实上,这就是为什么会出现该错误)

我将假设对于表
成员
上线
是招募他/她成员的
ID
。如果这是正确的,您可以像这样构建查询:

select  t1.id, t1.name
from    members t1
join    geneology t2
on      t1.id = t2.parent_id
join    members t3
on      t2.child_id = t3.upline
where   t1.status = 15
group by t1.id, t1.name
having   count(distinct t3.id) = 6 and
         sum(t3.status) = 90
这将使用
成员
表两次,一次用于父级,一次用于子级,两个表由
遗传学
表关联


where
子句中的条件是针对父项的,然后您将每个父项的子项数据分组,并仅返回其子项满足
having
子句中条件的父项。

SUM
是一个分组函数,但您没有按任何方式分组。im将m.status分组。那是错的吗检查Stefano的答案。您可以看到有一个
GROUPBY
语句,它允许您进行
求和。拥有
本质上是一个
其中
但是对于分组结果,非常感谢兄弟。我不得不编辑一些部分,但整个代码是正确的。