Angenommen, Sie eine Tabelle wie folgt aus:Doppelte Zeilen
+----+--------+-------------+----------------+--------+
| Id | Parent | Description | NumberOfThings | Number |
+----+--------+-------------+----------------+--------+
| A | NULL | This is A | 1 | NULL |
| B | NULL | This is B | 3 | NULL |
| C | NULL | This is C | 2 | NULL |
+----+--------+-------------+----------------+--------+
und Sie die NumberOfThings
verwenden möchten X Kinder Reihe von Dingen erstellen:
+-----+--------+-------------+----------------+--------+
| Id | Parent | Description | NumberOfThings | Number |
+-----+--------+-------------+----------------+--------+
| A | NULL | This is A | 1 | NULL |
| B | NULL | This is B | 3 | NULL |
| C | NULL | This is C | 2 | NULL |
| A-1 | A | This is A | 1 | 1 |
| B-1 | B | This is B | 1 | 1 |
| C-1 | C | This is C | 1 | 1 |
| B-2 | B | This is B | 1 | 2 |
| C-2 | C | This is C | 1 | 2 |
| B-3 | B | This is B | 1 | 3 |
+-----+--------+-------------+----------------+--------+
Wie würde ich mich über Dies tun? Ich habe eine Idee, dass ich einen LEFT JOIN und vielleicht eine Wildcard ON-Klausel verwenden könnte, aber ich bin nicht sicher, wo ich damit anfangen soll.
Dies verwendet SQL Server 2012, aber ich glaube, dass es eine Lösung geben kann, die nicht für jede DB-Engine spezifisch ist.
SQL Fiddle mit ersten Versuch: http://sqlfiddle.com/#!6/dcafc/2
Sie müssen sich an eine Numbers-Tabelle einer Art anmelden, wobei der Join mit jedem Datensatz in der Numbers-Tabelle <= der 'NumberOfThings'-Spalte übereinstimmt. Dies wird helfen: http://stackoverflow.com/questions/1393951/what-is-the-best-way-to-create-and-populate-a-number-table –