2012-12-04 77 views
2

我有3个表:SQL连接并重复结果?

1)participant 
    *********** 
    +id_participant 
    +id_poste 
    +name 
    +email 

2) profile_formaion 
    **************** 
    +id_poste 
    +id_formation 

3) formation 
    ********* 
    +id_formation 
    +lable 

EXAMPLE:

DATA:参与者

1 | 2 | user1 | [email protected] 

DATA:profile_formation

2 | 3 
2 | 4 

DATA:形成

1 |lable1 
2 |lable2 
3 |lable3 
4 |lable4 

任何人都可以帮助我,我如何使用SQL语句(加入),以获得结果:

DATA:结果

1 | 2 | user1 | [email protected] | label3 
1 | 2 | user1 | [email protected] | label4 

感谢

回答

5
SELECT 
    participant.id_participant, 
    participant.id_poste, 
    participant.name, 
    participant.email, 
    formation.lable 
FROM participant 
INNER JOIN profile_formaion ON 
    profile_formaion.id_poste = participant.id_poste 
INNER JOIN formation ON 
    formation.id_formation = profile_formaion.id_formation 
+0

+1,这里是[工作演示](http://www.sqlfiddle.com/ #!2/90c07/2) –

1

这应该这样做

select p.*, f.lable 
from participant p 
join profile_formaion pf on pf.id_poste = p.id_poste 
join formation f on f.id_formation = pf.id_formation 
1

SELECT p。 id_participant,p。 id_poste,p。 name,p。 email,f。 lable FROM参与者p加入profile_formaion pf上p.id_poste = pf.id_poste加入队形f上pf.id_formation = f.id_formation