2010-06-12 4 views
-1

ma table contient nom_catégorie et de la colonne parent_category_Idcomment sélectionner les lignes de la table

Mes données parent_category contient la même table id clé primaire.

i besoin de sélectionner les toutes les lignes et insted mon parent_category_Id je dois sélectionner le catogry_name

Répondre

1

Je pense que c'est ce que vous êtes après, mais il est difficile de discerner de la question:

Select c.* 
From category c 
    Join parent_category pc ON c.parent_category_id = pc.id 
Where pc.category_name = 'Some Name' 
+0

son fonctionnement mais je ne suis pas en mesure d'obtenir la ligne parente ... la ligne parente contient la valeur de la ligne par 0. – TinTin

+0

@ Ayyappan.Anbalagan - Pouvez-vous clarifier un peu? Si vous voulez aussi les données de la table parent, vous pouvez faire 'Select pc. *, C. *', Ou mieux, sélectionnez les colonnes que vous voulez réellement ... mais je ne suis pas sûr de la question * exactement * ce que vous êtes après. –

0

Essayez quelque chose comme:

SELECT c.category_name, p.category_name 
    FROM categories c LEFT JOIN parent_categories p 
    ON c.parent_id = p.id  

PS: vous pouvez penser à la restructuration de votre base de données, il serait plus sens de stocker toutes les catégories dans le même tableau. Voir par exemple: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

0

Vous devez restructurer votre base de données pour avoir une table avec:

Les colonnes id, name et parent, avec la colonne parent référençant la colonne id de la même table. Votre base de données actuelle n'est pas normalisée et entraînera probablement des problèmes à l'avenir. Au minimum, vous devez avoir une colonne id auto_increment dans la table des catégories.

Les autres réponses sont correctes (en fonction du serveur SQL que vous utilisez).

Questions connexes