select Table1.colID, Table1.colName,
(select * from Table2 where Table2.colID = Table1.colID) as NestedRows
from Table1
上面的查询给你这个错误: 子查询返回的值超过1。这是不允许的,当子查询遵循=,!=,<,< =,>,> =或当子查询被使用时.....嵌套的记录是sql服务器
任何人都可以解释为什么这个限制存在?
我有这种想法,这种多维的查询将是构建面向对象从数据库查询1
编辑对象直接不错:
这个问题是相当的理论。为了解决这个问题,我会使用一个连接或简单地完成2个查询,但我想知道是否有任何东西阻止你返回一个表作为表类型(在sql server 2008中,你可以创建表类型)。
说你在代码corrensponding类,认为LINQ2SQL
public class Table1
{
public int colID,
public string colName,
public List<Table2> table2s;
}
我希望能够填补这一类的实例直接与1个查询
如果您确实只需要一行,则需要使用GROUP BY子句和合适的聚合函数,或者使用原始子查询(以及合适的ORDER BY子句)使用TOP 1。 – 2008-12-16 15:09:14
但这听起来不像他只想要一行。据我所知,他的确需要Table2中的多行。我也假定表1包含colID的主键。 – NYSystemsAnalyst 2008-12-16 15:17:35