【问题标题】:How can I use the return value from a query in the other query?如何在另一个查询中使用查询的返回值?
【发布时间】:2017-02-20 17:10:09
【问题描述】:

这是我的第一个查询:

Select a1,count(*) as b1 from btable

这是我的第二个查询:

Select a1,a2,a3,.., from atable inner join btable b on a1=b.a1

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

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

【问题讨论】:

  • 不清楚你的问题是什么。

标签: sql transactions


【解决方案1】:

首先,让我同意 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

【讨论】:

    【解决方案2】:

    不确定我是否正确地回答了您的问题,但第一个查询似乎使用了一个聚合函数(计数),该函数应附带一个 group by 子句。如果您必须使用group by 子句,那么每个 a1 的所有行的 b1 值都将为 1

    例子:

    Select a1,count(*) as b1
    from btable
    group by a1
    

    对于第二个查询,您实际上不必使用连接;您可以使用简单的where 条件来实现这一目标

    例子:

    Select a.a1,a.a2,a.a3,..,
    from atable a,btable b
    where a.a1=b.a1
    

    【讨论】:

      猜你喜欢
      • 2020-10-26
      • 1970-01-01
      • 2022-10-15
      • 2022-01-03
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多