如何在其他查询中使用查询的返回值?

时间:2017-02-20 17:10:09

标签: sql transactions

这是我的第一个问题:

- (void)updateItemInSection:(NSUInteger)section{

    switch (section) {
        case 0:{
            _locations = [[Spot spotWithType:@"users"]mutableCopy];
        }
            break;

        case 1:{
            _users = [[Spot spotType:@"users"]mutableCopy];
        }
            break;    
    }
}

这是我的第二个问题:

Select a1,count(*) as b1 from btable

我的意思是,在第一个查询中,如果b1获取a1的值,我希望b1对应于相同的a1,以在第二个查询中获取该值。如果没有相应的值b1 = 0。

示例;第一个查询结果:如果a1 = 1且b1 = 2,则a1 = 100且b1 = 8 .... 第二个查询结果:a1 = 1 b1 = 2,a1 = 30 b1 = 0,a1 = 100 b1 = 8,a1 = 22 b1 = 0

2 个答案:

答案 0 :(得分:0)

不确定我是否正确地提出了您的问题,但第一个查询似乎是使用了一个聚合函数(count),它应该附带一个intent.putExtra(HomeScreen.x, extras); 子句。如果必须使用group by子句,则每个a1的所有行的b1值将为1

示例:

group by

对于第二个查询,您实际上不必使用连接;您可以使用简单的Select a1,count(*) as b1 from btable group by a1 条件

来实现这一目标

示例:

where

答案 1 :(得分:0)

首先,让我同意Manash Hazaika并说你的第一个查询可能不正确。忽略这一点,如果您希望第二个查询可以访问第一个查询的结果,您可以考虑使用CTE,如下所示:

;with subQuery as
(
   Select a1,count(*) as b1 from btable
)
Select a1,a2,a3,.., from atable inner join subQuery b on a1=b.a1