Sql 关于多个联合体的联合和别名问题的案例

Sql 关于多个联合体的联合和别名问题的案例,sql,union,case,alias,Sql,Union,Case,Alias,我有两个系列的工会,我希望由另一个工会加入。在第一个中,我有3个选择,在第二个中,我有2个不同的选择 Select id, min(value) from table1 t1 join (Select id, value Union Select id, value Union Select id, value) as foo on foo.id=t1.id Group by id Select id, max(value) from

我有两个系列的工会,我希望由另一个工会加入。在第一个中,我有3个
选择
,在第二个中,我有2个不同的
选择

Select id, min(value)
from table1 t1
join (Select id, value
      Union
      Select id, value
      Union
      Select id, value) as foo 
  on foo.id=t1.id
  Group by id

Select id, max(value)
from table1 t1
join (Select id, value
      Union
      Select id, value) as bar 
  on bar.id=t1.id
  Group by id
我试图把这两个人结合起来,但这让事情变得相当复杂。我最大的问题是我的别名。我的第二个例子是与我的value列链接的case,我希望将其命名为value

Select (alias).id, 
       Case 
           When foo.value= 0 or bar.value=1 THEN 1
           Else 0
       End as value
from table1 t1
Join (Select id, min(value)
      from table1 t1
      join (Select id, value
            Union
            Select id, value
            Union
            Select id, value) as foo
            on foo.id=t1.id
            Group by id
      UNION
      Select id, max(value)
      from table1 t1
      join (Select id, value
            Union
            Select id, value) as bar 
        on bar.id=t1.id
        Group by id) as (alias) 
  on ??.id=??.id

我以我认为应该的方式编写了我的案例,但通常,当有多个同名列时,SQL会将其声明为不明确。我仍然不确定是否应该使用
联合
交集
,但我假设它们中的任何一个都会以相同的方式使用。我该怎么处理呢?

我读对了,你可能想要这样的东西

SELECT ...
FROM ( ... union #1 ) AS u1
JOIN (... union #2 ) AS u2 ON u1.id = u2.id

最终查询有一个逻辑问题:当foo.value=0或bar.value=1时,案例条件
——在外部查询中,无法判断哪些值来自哪个子查询。不仅如此,
UNION
INTERSECT
做的事情也大不相同——不清楚你想做哪一件。您能否重新表述您的问题,或者解释您试图做什么而不是如何做,或者解释您当前的确切问题?您能否提供您的表格布局?你想做什么?请描述一下你想做什么。您的
union
s中的查询没有
from
子句。您使用的聚合函数没有
分组依据
。我的第一个并集是求最大值,第二个并集是求最小值,所以我不能使用所有5个并集,这就是我划分并集的原因。但是,我希望所有具有特定值的ID都是#1或#2中的特定值,因此情况就是这样。如果我使用is,我的第一个问题是关于
union
末尾的别名,第二个问题是关于一个既适用于我的union@GordonLinoff我将
分组添加到它们应该在的位置。我可以为每个
Select
添加from和join,但我认为这些行在这里只是微不足道的,因为每个Select单独工作,而我的foo和bar联合也单独工作。我的问题是foo和bar的联合,我想从我的内部联合中解决这个问题。