次のクエリを正しく機能させるのに苦労しています。すべてが正しく設定されているように感じます。以前のバージョンの 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;