2012-12-19 28 views
11

verilerle sonuç tablosundaki yabancı anahtar değiştirin:MySQL Böyle bir tablo var FK masanın

id (PK) name teacher (FK) student (FK) 
    1  Ron   3    6 

Hem öğretmen ve öğrenci people adında başka tabloda bulunmaktadır.

people 
id (PK) name age 
    3  Ali 42 
    6  Jon 12 

aşağıdaki

name teacher's name student's name 
Ron   Ali    Jon 

elde etmek için bir sorgu gerçekleştirmek istiyoruz bu mümkün mü? Ben ayrı katılır iki gerçekleştirebilirsiniz biliyorum ama sonra iki sıra sol am ve orada adı öğretmeni olduğu hiçbir göstergesidir ve öğrenciye olan

cevap

12
select t.name, p1.name teacher_name, p2.name student_name 
     from t 
left join people p1 on (t.teacher=p1.id) 
left join people p2 on (t.student=p2.id) 
7

bu deneyin:

SELECT a.name, b.name 'teacher name', c.name 'student name' 
FROM mainTablle a 
LEFT JOIN people b ON a.teacher = b.id 
LEFT JOIN people c ON a.student = c.id 
WHERE a.id = 1; 
İlgili konular