台灣最大程式設計社群網站
線上人數
257
 
會員總數:239905
討論主題:186053
歡迎您免費加入會員
討論區列表 >> 其他DB >> 兩張Table 上下合併
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
兩張Table 上下合併
價值 : 75 QP  點閱數:696 回應數:3

樓主

阿弦
門外漢
0 28
511 56
發送站內信

各位好
小弟正在做問卷系統,目前碰到有SQL語法問題,想請教各位高手們~
目前我有個table是這樣 (table name: Questionnaire_Result)



另一個table是這樣(table name:User_Info)


我想要把這兩個table join在一起
以下是想要的樣子



簡單來說,現在有兩份問卷,
有兩個使用者,各自寫不同問卷,
每個問卷都有4個大題(4 GroupID),所以原本有8個 Group ID (在Questionnaire_Result)可以看的出來
每個Group都有不同小題,像是Group ID 為1的時候,有3小題,
所以第一張圖裡面可以看的出來,
第一個User(UserID為111)在第一個Group的三個小題分別的答案為50、75、2
第二個Group的答案為123、456、789

第二個User(UserID為111)在第二個Group的三個三個小題分別的答案為123、75、789
第二個Group的答案為123、2、789



現在我想把使用者的資訊(User_Info)裡面的UserGender、UserAge、UserRegion也分別併到第一個Table(Questionnaire_Result)的下面
第一個User(UserID:111)把UserGender當成GroupID為100裡面的第一題、UserAge當成第二題、UserRegion當成第三題
在第一張圖的Table中,加到UserID為111的問卷結果的下面

第二個User(UserID:222)把UserGender當成GroupID為100裡面的第一題、UserAge當成第二題、UserRegion當成第三題
在第一張圖的Table中,加到UserID為222的問卷結果的下面

另外我想把第二個User的GroupID從5~8改成跟第一個User 111一樣,都從1~4開始

產生的結果是第三張圖的樣子
紅色的字代表跟第一張圖的差異的地方

這樣的語法請問各位大大要怎麼下呢>"<,小的不才需要各路高手出手解救,
若有其他疑問還請各位不吝提出,感謝各位了Orz

搜尋相關Tags的文章: [ sql ] , [ join ] , [ union ] , [ two table ] , [ group ] ,
本篇文章發表於2015-04-01 14:40
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

阿弦
檢舉此回應
更正一下上面的字

原本:
第二個User(UserID為111)在第二個Group的三個三個小題分別的答案為123、75、789
第二個Group的答案為123、2、789


改成
第二個User(UserID為111)在第一個Group的三個小題分別的答案為123、75、789
第二個Group的答案為123、2、789
本篇文章回覆於2015-04-01 14:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

javis
檢舉此回應
提供一個mysql解法,參考看看
demo online:http://sqlfiddle.com/#!9/bfefb/5

本篇文章回覆於2015-04-02 00:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

阿弦
檢舉此回應
嗨~javis 大大您好,
謝謝您的回答
不過我的資料庫是MS SQL 比較希望能有相對應的語法
我自己對MYSQ表較不熟說XD

話說 能否更有彈性不要用
WHEN 5 THEN 1
WHEN 6 THEN 2
WHEN 7 THEN 3
WHEN 8 THEN 4
這樣的寫法呢?
想說以後資料如果很多 就必須要用除法之類的邏輯去寫了
有其他大大能夠提供其他寫法嗎? 真的感激不盡!
本篇文章回覆於2015-04-02 16:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.