Ich habe einige Code, den ich in SQL Server verwendet habe, um eine Verschlusstabelle aus einer anderen Tabelle zu generieren, die nur die direkten Eltern/Kind-Beziehungen hat, kann ich sehr einfache Abfragen ausführen, um Herkunft zu bestimmen. Jetzt bin ich, um alles in mySQL zu tun, aber ich habe Probleme mit den rekursiven Abfragen der Verschlusstabelle zu erzeugen ...mySQL transitive Verschlusstabelle
Meine ursprüngliche SQL Server-Abfrage ist
WHILE @@ROWCOUNT>0
INSERT INTO [ClosureTable] ([Ancestor], [Descendent])
SELECT distinct [Parent],[tc].[Descendent]
FROM
[RelationshipTable]
INNER JOIN [ClosureTable] as tc
ON [Child]COLLATE DATABASE_DEFAULT =
[tc].[Ancestor]COLLATE DATABASE_DEFAULT
LEFT OUTER JOIN [ClosureTable] As tc2
ON [Parent]COLLATE DATABASE_DEFAULT =
[tc2].[Ancestor] COLLATE DATABASE_DEFAULT
AND [tc].[Descendent]COLLATE DATABASE_DEFAULT =
[tc2].[Descendent]COLLATE DATABASE_DEFAULT
Mein erstes Problem zu finden ist eine Substitution für @@ ROWCOUNT ... aber vielleicht sind rekursive Abfragen in mySQL völlig anders? Ich habe auch ausgecheckt Bill Karwin's presentation
PS. Die "COLLATE DATABASE_DEFAULT" war etwas, das ich aufgrund von Leistungsproblemen brauchte.
Danke.
Update: Dank. Ich schaue mir das morgen wieder an. Zu müde jetzt ... Auch ich habe gerade Code bei http://mondrian.pentaho.com/documentation/schema.php#Closure_tables gefunden, der vielversprechend ist, aber ich habe Probleme mit der Wiederholungsschleife. – DougF