select Table1.colID, Table1.colName,
(select * from Table2 where Table2.colID = Table1.colID) as NestedRows
from Table1
Приведенный выше запрос дает вам эту ошибку:
Подзапрос вернул более 1 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется .....
Кто-нибудь может объяснить, почему существует это ограничение?
У меня была идея, что такого рода многомерные запросы были бы хороши для построения объектов OO непосредственно из базы данных с 1 запросом
EDIT:
Этот вопрос довольно теоретический. Чтобы решить эту задачу, я бы использовал объединение или просто сделал 2 запроса, но мне было интересно, не мешало ли вам что-либо возвращать столбец как тип таблицы (в SQL Server 2008 вы можете создавать типы таблиц).
Скажем, у вас есть соответствующие классы в коде, подумайте, Linq2Sql
public class Table1
{
public int colID,
public string colName,
public List<Table2> table2s;
}
Я бы хотел иметь возможность заполнять экземпляры этого класса напрямую одним запросом