2016-06-07 1 views
-1

J'ai deux tables:Rejoint dans le serveur SQL

  • tableau A (ID, nom, lien, type, CID)
  • Tableau B (ID, nom, lien, ImagePath, le prix, CID)

le problème que j'ai est que je veux joindre ces deux tables sur la base d'ID

ID  Name  Type   CID 
1  Apple Category  0 
2  TV  Category  0 
3  Laptop Category  0 

Dans le même tableau A, l'ID de apple tV et ordinateur portable est pas sed à sous-catégorie comme CID

ID  Name  Type    CID 
4  Macbook sub category  1 
5  iTV  sub category  2 
6  HP  sub category  3 

L'ID de la catégorie est dans la sous-catégorie CID dans le même tableau. ID de sous catégorie sera transmis à la catégorie des enfants dans la même table que CID

ID  Name  Type    CID 
7  Applebook Child category  4 
8  TV MLT2  child category  5 
9  HP Mini  Child Category  6 

L'ID de la catégorie des enfants sera transmis à la table B CID qui est 7 8 et 9.

Comment puis-je rejoindre ces tables maintenant que je devrais rechercher APPLE je devrais avoir tous les produits de la pomme de la table a et B à la fois. Que dois-je faire pour joindre la table A avec B sur la base de l'ID puis la catégorie enfant avec la sous-catégorie sur la base de l'ID et CID puis avec la catégorie principale. Quelle jointure devrais-je utiliser? Je comprends bien se joint presque je suppose que gauche droite intérieure mais je ne sais pas ce que je devrais faire dans mon cas? Comment puis-je rejoindre ma catégorie avec des sous puis sous avec un enfant alors enfant avec table B sur la base d'identité qui devient CID dans d'autres

+1

Vous devez modifier votre question de contenir vos tables et données réelles et un exemple clair de ce que vous voulez que la sortie. –

+0

Veuillez montrer le résultat attendu pour la catégorie 'Apple'. –

Répondre

0

Vous avez juste besoin d'utiliser join normal à plusieurs reprises:

select 
    C.* 
from 
    yourtable a 
    join yourtable b on a.ID = b.CID 
    join yourtable c on b.ID = c.CID 
where 
    a.name = 'Apple' 
+0

plusieurs fois? laissez-moi voir si cela fonctionne –

+0

S'il y a des niveaux de profondeur arbitraires dans les catégories, vous voulez un CTE récursif. –

+0

il est déroutant pour moi parce que j'ai des produits dans la catégorie qui a ID et ces catégories a des catégories de soleil et a CID de l'ID, et ID des sous catégories est passé aux catégories enfant comme CID et ID de ces enfants catégories est passé à une autre table comme CID maintenant je veux toutes les données de pomme et d'autres catégories ainsi avec joint je comprends juste les jointures de base je ne sais pas quoi faire dans cette situation –