2010-01-12 6 views
0

gars Hai,MySQL se joindre à deux tables pour obtenir les dossiers

J'ai deux tables Incharge et propriété. Ma table de propriété a trois champs 1stIncharge, 2ndIncharge et 3rdIncharge. InchargeId est défini comme clé étrangère pour tous les champs ci-dessus dans le tableau de la propriété ..

Comment écrire une instruction select qui se joint à la fois la table .. J'ai essayé un peu mais aucun résultat

select P.Id,P.Name,P.1stIncharge,P.2ndIncharge,P.3rdIncharge,I.Id from 
Property as P join Incharge as I where (\\How to give condition here \\) 

Les gars 3 champs P.1stIncharge, P.2ndIncharge, a P.3rdIncharge clé étrangère I.Id

Edit:

select P.Id,P.Name,P.1stIncharge,P.2ndIncharge,P.3rdIncharge,I1.Id from 
Property as P 
inner join Incharge as I1 on I1.Id=P.1stIncharge 
inner join Incharge as I2 on I2.Id=P.2ndIncharge 
inner join Incharge as I3 on I3.Id=P.3rdIncharge 

and this query working 
+0

@Saranya: Si la solution de Codesleuth est pas ce que vous vouliez, pensez à modifier votre question et fournir des données par exemple sur les résultats attendus. –

Répondre

0

Je ne suis pas sûr de vos noms de clés étrangères des deux tables, mais je pense que vous cherchez ceci:

SELECT P.Id, P.Name, P.1stIncharge, P.2ndIncharge, P.3rdIncharge, I.Id 
FROM Property as P INNER JOIN Incharge as I ON P.InchargeId = I.Id 
+0

@Codesleuth 3 champs P.1stIncharge, P.2ndIncharge, P.3rdIncharge clé étrangère a I.Id – Saranya

+0

@Codesleuth il n'y a pas de champ appelé P.InchargeId – Saranya

+0

Désolé, mais votre question était un peu vague. Je suis content que vous l'ayez réglé. – Codesleuth

0

Si vos noms de table et de colonne sont corrects, votre solution proposée semble correct (je reformaté il):

SELECT 
    P.Id, P.Name, P.1stIncharge, P.2ndIncharge, P.3rdIncharge, 
    I1.Id 
FROM Property AS P 
JOIN Incharge AS I1 ON (I1.Id = P.1stIncharge) 
JOIN Incharge AS I2 ON (I2.Id = P.2ndIncharge) 
JOIN Incharge AS I3 ON (I3.Id = P.3rdIncharge) 

Quelle sorte d'erreur obtenez-vous?