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