admin

如何从子查询返回多个值

sql

SELECT state, business, a.report
FROM base
WHERE state IN
  (SELECT a.state FROM heart a join (SELECT CAST(MAX(percent_adults) AS DOUBLE) max1 FROM heart)b on (a.percent_adults=b.max1));

在上面的子查询中,只能返回一个值,即表“
heart”中的a.state。该值用于主查询中,并从“基本”表中获取业务。我需要从报表的子查询中的’heart’表返回a.report以及state和business。非常感谢!


阅读 204

收藏
2021-06-07

共1个答案

admin

您不需要子查询返回两个值。您所需要的子查询就是提供唯一的联接值(依靠两个计算出的double值完全相同的几率)。

因此,只需进行联接并从中选择报告:

select  b.state, b.business, a.report
from    base  b
join    heart a
  on    a.state = b.state
where   a.percent_adults =(
          select  max( percent_adults )
          from    heart );

您将联接仅限制为具有最高percent_adult值的一种状态,并从中获取报告。

2021-06-07