0

次のクエリを正しく機能させるのに苦労しています。すべてが正しく設定されているように感じます。以前のバージョンの MySQL Workbench は「with」をサポートしていなかったと読みました。Ubuntu を更新し、MySQL Workbench 8.0.20 を実行しています。しかし、'with' 句を使用しようとすると、MySQL は with がサーバー バージョンの位置では無効であると通知し続けます。目標は、データを階層的にリストすることです。このために、TestCat_2 を主キーとし、Parent_id を持つ 1 つのテーブルを使用しています。私はこれまでこのようなクエリを実際に実行したことがないので、単純なものであることを願っています。私が達成しようとしていることの例として、フォローしようとしていた 2 つのブログの URL を掲載します。ツリー全体を表示したいと思います。それ以外の場合は、誰かが回避策を見つけるのを手伝ってくれれば幸いです。

https://www.mysqltutorial.org/mysql-adjacency-list-tree/

https://www.akki.io/blog/mysql-adjacency-list-model-for-hierarchical-data-using-cte/

私のクエリ:

WITH RECURSIVE category_path (TestCat_2, TestCat2_name, path) as

(

select TestCat_2, TestCat2_name, TestCat2_name as path
from TestCat
where Parent_id is null

union all

select t.TestCat_2, t.TestCat2_name, concat(tp.path, ' > ', t.TestCat2_name)
from category_path as tp join TestCat as t 
on tp.TestCat_2 = t.Parent_id

)

select TestCat_2, TestCat2_name, path from category_path 
order by path;

セッションタブ

4

1 に答える 1