在一个查询中多次选择 - 一个基于另一个查询

时间:2015-11-17 11:06:03

标签: sql-server tsql

我想从单个查询返回多个结果集,并假设第二个选择基于第一个。基本上我需要回复:

表1

ID,姓名

表2

ID,Name,Value,Table1ID

我认为加入这些表不会是这种情况,因为Table2可能包含Table1中同一行的几个项目。

是否有任何有效且以性能为导向的方法?也许使用CTE?

@EDIT

示例数据:

Table 1:
ID    Name
1     First
2     Second

Table 2:
ID    Value    Table1ID
1     2,25     1
2     2,45     1
3     1,94     2
4     2,12     3

我需要的结果是数据集(我使用C#,所以我会在这里使用C#“语法”

DataSet.Tables(0)
    ID    Name
    1     First
    2     Second

DataSet.Tables(1)
    ID    Value    Table1ID
    1     2,25     1
    2     2,45     1
    3     1,94     2

我将不得不将这两个表组合起来,因为我的与Table1相关的类包含值列表。我想知道是否应该使用SQL Join,然后将结果转换为Lookup的方式比我返回的两个表并且在Lookup实例中只有第二个表的方式更复杂?

1 个答案:

答案 0 :(得分:2)

这个怎么样:

DataSet.Tables(0)

select ID, Name
from Table1

代表DataSet.Tables(1)

select Table2.ID, Table2.Value, Table2.Table1ID
from Table2 
    inner join Table1 on Table2.Table1ID = Table1.ID