Существуют две таблицы SQL:
Parents:
+--+---------+
|id| text |
+--+---------+
| 1| Blah |
| 2| Blah2 |
| 3| Blah3 |
+--+---------+
Childs
+--+------+-------+
|id|parent|feature|
+--+------+-------+
| 1| 1 | 123 |
| 2| 1 | 35 |
| 3| 2 | 15 |
+--+------+-------+
Я хочу выбрать с одним запросом каждую строку из таблицы "Родители" и для каждой отдельной строки из таблицы "Дети" с соотношением "родительский" - "id" и наибольшее значение столбца "функция". В этом примере результат должен быть:
+----+------+----+--------+---------+
|p.id|p.text|c.id|c.parent|c.feature|
+----+------+----+--------+---------+
| 1 | Blah | 1 | 1 | 123 |
| 2 | Blah2| 3 | 2 | 15 |
| 3 | Blah3|null| null | null |
+----+------+----+--------+---------+
Где p = родительская таблица и c = таблица для детей
Я попытался ЛЕВАТЬ ВНУТРЕННУЮ СОЕДИНЕНИЕ И ГРУППУ, но MSSQL Express сказал мне, что запрос с GROUP BY требует функции Aggregate для каждого поля, отличного от Groupped. И я не хочу группировать их всех, а скорее выбирать верхнюю строку (с пользовательским упорядочением).
Я полностью из идей...