具有多个不同实体的select语句的SQL

时间:2015-12-03 13:28:31

标签: sql

我正在尝试学习一些SQL,我想要做的只是根据某些标准从表中选择一些行。

所以,我正在尝试这样的事情:

Select * from mytable where id=1090 as A, Select * from mytable where id=1075 as B;

我需要将它们保留为我的示例中的不同实体(A和B),以便我可以执行以下操作:

Select A.col, B.row from A, B where <some criteria>

我无法弄清楚如何将所有这些放在SQL查询中

2 个答案:

答案 0 :(得分:1)

select A.*, B.*
from
    (Select * from mytable where id=1090) as A
join
    (Select * from mytable where id=1075) as B ON <some criteria>

答案 1 :(得分:1)

如果我理解正确的话,你可以通过这种魔法达到你想要的效果。这将并排返回行,不知道如何解释:

;with a as(select *, row_number() over(order by(select null)) rn 
           from tableA where id = 1090),
      b as(select *, row_number() over(order by(select null)) rn 
           from tableB where id = 1075)
select a.*, b.*
from a 
full join b on a.rn = b.rn

如果第一个选择返回4行和第2行,则输出将类似于:

A(rn, cols)   B(rn, cols)
1 .........   1 .........
2 .........   2 .........
3 .........   NULL
4 .........   NULL