簡體   English   中英

如何從另一個表中獲取子列的總和

[英]how to get the sum of a child column from another table

我有一個可以獲取會員信息的系統。 我希望我的系統自動獲得獲獎者的名字。 條件是該成員招募了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

表2的列

id, parent_id, child_id

請幫助我新的SQL查詢

首先, ON子句定義用於匹配兩個表的行的條件,因此SUM() >= 90不應停留在該位置(實際上,這就是為什么會出現此錯誤的原因)。

我假設對於表members ,上upline是招募該成員的成員的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

這將使用兩次members表,一次用於父級,一次用於子級,並且這兩個表由geneology表關聯。

中條件where條款是父,那么你組為每個父孩子數據,並僅返回父母的子女satisfiy的條件中having條款。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM