私はSQL Serverで直接親子関係のある別のテーブルからクロージャーテーブルを生成するためのコードをいくつか持っています。今、私のオリジナルのSQL Serverクエリが私の最初の問題が発見されmySQL推移閉包テーブル
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
です...
を私はMySQLですべてこれを行うために必要とするのですが、私は、閉鎖テーブルを生成するために、再帰クエリに問題が生じています@@ ROWCOUNTの代入文ですが、おそらく再帰的なクエリはmySQLではまったく異なりますか?私もチェックアウトしましたBill Karwin's presentation
PS。 "COLLATE DATABASE_DEFAULT"は、パフォーマンスの問題のために必要なものでした。
ありがとうございました。私はそれが周りに再帰的に隣接リストテーブルからツリーを生成すると思う - - 私はあなたの正確な問題が何であるかを理解している場合
更新: ありがとう。私は明日これをもう一度見ます。今は疲れています...また、私はhttp://mondrian.pentaho.com/documentation/schema.php#Closure_tablesで有望なコードを見つけましたが、繰り返しループに問題があります。 – DougF