2015-09-13 3 views
-1

Итак, у меня есть таблица spiller с игроками и их id.
mysql join tables и display fk values ​​

id | navn 
------------- 
1 | John Doe 
2 | Matoma 
3 | Lemaitre 
4 | Koan 


Во-вторых у меня есть таблица spillerpar, которая ставит игроков в парах. Эта таблица состоит из идентификатора Auto Inc и внешний ключ spiller ид х 2.

id | spiller_id_fk_1 | spiller_id_fk_2 
-------------------------------------- 
1 | 1    | 4 
2 | 3    | 2 

Im пытается отобразить значения 2 Fk наряду с Ф.К. идентификатором. Я не могу понять, как это сделать. Пожалуйста помоги.

select a.sid1, a.spiller1, b.sid2, spiller2 
FROM 
(Select 1_spillerpar.spiller_id_fk_1 as sid1, 1_spiller.navn as spiller1 
From 1_spillerpar 
Join 1_spiller 
ON 1_spillerpar.spiller_id_fk_1 = 1_spiller.id) as a, 
(Select 1_spillerpar.spiller_id_fk_2 as sid2, 1_spiller.navn as spiller2 
From 1_spillerpar 
Join 1_spiller 
ON 1_spillerpar.spiller_id_fk_2 = 1_spiller.id) as b 

EDIT

Желаемая результат будет выглядеть следующим образом:

id | spiller_id_fk_1 | navn | spiller_id_fk_2 | navn 
-------------------------------------------------------- 
1 | 1    | John Doe| 4    | Koan 
2 | 3    | Lemaitre| 2    | Matoma 
+0

Что должно выглядеть как выход? – thebjorn

+0

@ thebjorn - см. Редактировать – iontomet

ответ

2
Select s1.*,s2.* from spillerpar x 
Join spiller s1 on s1.id = spiller_id_fk_1 
Join spiller s2 on s2.id = spiller_id_fk_2 

Spillerpar.id избыточна

+0

Это работает! Хотя я не совсем понимаю, что вы сделали. Не могли бы вы объяснить, как это работает или указать мне куда-то, чтобы читать? Я думаю, что s1 и s2 не являются моими таблицами. – iontomet

+0

s1 является псевдонимом для spiller. Итак, s2 – Strawberry

0

ответ Клубника работает, как ожидалось, я думаю. Альтернатива:

SELECT sp.id as `pairId`, s1.*,s2.* FROM spillerpar sp, spiller s1, spiller s2 
WHERE s1.id = sp.spiller_id_fk_1 AND s2.id = sp.spiller_id_fk_2 

SQL скрипку here

(ред скрипку, чтобы соответствовать Fk имена + добавлены pairId)

+0

Я просто не думаю, что мы должны продвигать этот вид архаичного синтаксиса соединения на SO – Strawberry

+0

Согласен, мой SQL немного устарел :(Любой хороший учебник будет оценен! – urban

+0

Приятный ответ здесь: http: // stackoverflow .com/a/2242015/3727050 ... – urban