我想从单个查询返回多个结果集,并假设第二个选择基于第一个。基本上我需要回复:
表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实例中只有第二个表的方式更复杂?
答案 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