2011-08-07 22 views
0

這可能是一個非常基本的解決方案,但我似乎無法弄清楚。我試圖將 多個ID在一個表中與另一個表相匹配。SQL:對同一個表的多個匹配?

結構是這樣的,

tt_staff (ID - name) 
2 - Lenny 
3 - Carl 

tt_run (producer1 - producer2) 
2 (i.e Lenny) 
3 (i.e Carl) 

我想創建一個單行顯示我既卡爾和萊尼的名字,而不是他們的ID的景色。

試過以下,

SELECT e.*, run.*, s.s_name FROM tt_run AS run, tt_events AS e, tt_staff AS s 
WHERE e.e_ID = run.e_ID 
AND run.e_bandproducer1 = s.s_ID 
AND run.e_bandproducer2 = s.s_ID 

這顯然是行不通的,因爲ID是在producer1找到。我也嘗試過使用UNION,但對它不夠熟悉(我確實設法得到正確的結果,但分成兩行)。

一如既往,感謝您的任何答覆。

回答

1

它看起來像你只需要加入tt_staff兩次:

SELECT e.*, r.*, s1.s_name, s2.s_name 
    FROM tt_events e 
    INNER JOIN tt_run r ON e.e_ID = r.e_ID 
    INNER JOIN tt_staff s1 ON r.e_bandproducer1 = s1.s_ID 
    INNER JOIN tt_staff s2 ON r.e_bandproducer2 = s2.s_ID 
+0

也做到了,非常感謝!但是,我相信我之前已經完成了另一個(甚至可能更簡單)的方法。這有一些巧妙的訣竅嗎?如果發佈了其他建議,我會在短時間內解決該問題。 –