有两个SQL表:一个一对多的查询选择所有的父母和单顶子为每个父
Parents:
+--+---------+
|id| text |
+--+---------+
| 1| Blah |
| 2| Blah2 |
| 3| Blah3 |
+--+---------+
Childs
+--+------+-------+
|id|parent|feature|
+--+------+-------+
| 1| 1 | 123 |
| 2| 1 | 35 |
| 3| 2 | 15 |
+--+------+-------+
我想用单一的查询选择从父母表中的每一行和每一单排从Childs表格与关系“父母” - “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 =子表
我试图LEFT OUTER JOIN和GROUP BY但MSSQL快告诉我,GROUP BY该查询需要聚合函数在每个非分组字段上。而且我不想将它们全部分组,而是选择顶行(使用自定义顺序)。
我完全没了主意......
这不会只返回顶级的孩子每次 –
谢谢。修正了,现在它会。 – manji
它的工作!精彩! – PiotrK