2016-11-27 62 views
0

我想從四個不同的表中選擇一組數據,並且除了一個以外,一切都運行平穩。將數據從兩行選擇爲兩列作爲輸出mysql數據透視表

ANS_ID  REG_ID QST_ID ANS_value 
    4  1  11  M 
    5  1  12  12/02/1998 
    16  15  11  M 
    17  15  12  11/08/2005 
    28  16  11  F 
    29  16  12  05/18/2005 
    40  17  11  M 
    41  17  12  11/04/1980 
    52  18  11  M 

我需要從這個數據拉性別和生日作爲行的最後兩列,但是當我試圖把它列入我以前的所有行翻了一番,性別和生日交替。

ATT_fname ATT_lname sex birthday 
Kid1  Kid1Last M NULL 
Kid1  Kid1Last NULL 11/8/2005 
Kid2  Kid2Last F NULL 
Kid2  Kid2Last NULL 5/18/2005 
Adult1  Adult1Last M NULL 
Adult1  Adult1Last NULL 11/4/1980 

我想是這樣的:

ATT_fname ATT_lname sex birthday 
Kid1  Kid1Last M 11/8/2005 
Kid2  Kid2Last F 5/18/2005 
Adult1  Adult1Last M 11/4/1980 

目前代碼:

Select ATT_fname, ATT_lname, ATT_email, concat(ATT_address, ' ', ATT_address2), ATT_city, 
t4.STA_name, ATT_zip, ATT_phone, 
case when QST_ID = 11 then ANS_value end as sex, 
case when QST_ID = 12 then ANS_value end as birthday 
FROM table1 t1 
JOIN table2 t2 
ON t1.ATT_ID = t2.ATT_ID 
JOIN table3 t3 
ON t3.REG_ID=t2.REG_ID 
JOIN table4 t4 
ON t4.STA_ID=t1.STA_ID 
WHERE t2.EVT_ID = 9999; 
+0

顯然沒有格式化棒的周圍,當你提交,遺憾的雜波,也很抱歉,我花了多少時間嘗試格式化 – problemer

+0

請做出一些額外的努力,將您的問題格式化爲可讀的內容。 – FDavidov

+0

你應該有一個帶格式化按鈕的工具欄;還有一個幫助按鈕:-)(tl; dr:用四個空格縮進以保留空白,這可以通過選擇文本並按下Ctrl + K輕鬆完成)。 textarea下面還有一個預覽。你總是可以編輯一個問題來解決它(我現在爲你解決了)。 – Carpetsmoker

回答

0

因此,而不是花45分鐘試圖格式化這個(粘貼將是一個不錯的選擇)我決定花時間解決它。

只是有兩個不同的別名爲每個需要在IE中把現場加入你的表兩次:

JOIN Table1 t1sex ON t1sex.REG_ID=t2.REG_ID AND t1sex.QST_ID=11 JOIN Table1 t1birthday ON t1birthday.REG_ID=t2.REG_ID AND t1birthday.QST_ID=12