2013-07-17 55 views
0

我有一個簡單的SQL查詢,我只是想弄明白。我已經把這樣的測試數據庫放在一起;SQL加入到同一列ID

TABLE MAIN 
id name groupone grouptwo 
1 Fred 1  3 
2 bob 2  1 

TABLE DETAIL 
id group groupname 
1 1  onegrp 
2 2  twogrp 
4 3  threegrp 

我的選擇查詢是;

SELECT name, groupone, grouptwo, groupname 
FROM main 
INNER JOIN detail 
ON main.groupone = detail.group 
WHERE main.id = 1 

我得到的結果是;

id name groupone grouptwo groupname 
1 fred 1   3  onegrp 

如何更改爲,而不是讓結果作爲1和3 我得到...弗雷德onegrp,threegrp

我試過有很多事情,但不能讓它工作,我有點想要再給我一個groupname選項,但不知道這是什麼語法! :(

預先感謝您的時間和幫助

+2

你能請打印所需的輸出? –

+1

爲什麼組號3將兩個組帶回來? – JNK

+0

對不起,我整理了一下我的問題 – HeavyHead

回答

4

我想這是你所追求的。你需要加入細節表兩次,在兩個不同的密鑰。

SELECT 
    m.Name 
    ,a.groupname as 'GroupOne' 
    ,b.groupname as 'GroupTwo' 
FROM 
    main m 
INNER JOIN 
    detail a 
    on m.groupone = a.group 
INNER JOIN 
    detail b 
    on m.grouptwo = b.group 
WHERE 
    m.id = 1 
+0

很棒很棒,謝謝:) – HeavyHead