Hiérarchique de Données dans MySQL

J'ai une sorte d'arbre comme la chose se passe dans ma base de données MySQL.

J'ai une base de données qui comporte des catégories et chaque catégorie a un subcat. Je vais garder toutes les catégories dans un tableau, de sorte que les colonnes sont comme ceci:

*categories table*
id | name  | parent_id
1  | Toys  | 0
2  | Dolls | 1
3  | Bikes | 1

Chaque élément dans ma base de données est affecté à l'une de ces catégories:

*items table*
item   | category_id
barbie | 2
schwinn| 3

Le problème est que si quelqu'un veut voir tous les JOUETS (la catégorie parente) quel est le meilleur moyen de récupérer les infos de la base de données des objets? La seule façon que je sais comment faire quelque chose comme

SELECT * 
FROM items 
WHERE category_id = 2 
JOIN SELECT * 
     FROM items 
     WHERE category_id = 3
     etc... 

Mais si j'avais 10 catégories en vertu de Jouets, puis j'aurais à le faire adhérer de requête et de 10 fois.

Est-il une meilleure façon de gérer cela?

Ces jointures sont invalides syntaxe SQL (et si vous avez corrigé la syntaxe par exemple par des parenthèses autour de la deuxième sélection, vous obtenez un jeu de résultats vide); peut-être vous voulez dire de l'UNION?

OriginalL'auteur | 2009-07-06