URLに が含まれる e コマース サイトを作成しています。category_id
これに基づいて、category_id
すべての子と孫 (見つかった場合) を照会するので、それに関連する製品のみを表示できますcategory_id
。このクエリは、親の数を気にしないため、非常に優れています。親が見つからなくなるまで、すべての親を検索します。
私が抱えている問題は、クエリが親と祖父母 (見つかった場合) のみを取得することですが、このクエリが見つかった場合にすべての子行または孫を取得する方法がわかりません。このクエリはhereから引っ張ってきたので、クエリを書いていませんでした。正しい変更を行うのは難しいです...昨日一日中試しました。
編集 このクエリは、関連するすべての子と孫を取得するわけではありません (見つかった場合)。すべての子と孫が必要な場所 (見つかった場合)。
編集これが私 のデータが見つかるSQLフィドルです。
SELECT T2.category_id, T2.category_name
FROM (SELECT @r AS _id, (SELECT @r := parent
FROM categories
WHERE category_id = _id) AS parent
FROM (SELECT @r := 182)vars, categories h
WHERE @r <> 0) T1
JOIN categories T2
ON T1._id = T2.category_id
ORDER BY category_id ASC
これが私のテーブルスキーマです:
category_id | category_name | parent