2010-10-27 38 views
1

的行移MySQL數據庫值更易於描述由表示現有的數據結構和所希望的結果的簡化視圖...從幾列的條目


CURRENTLY ...

Element  Response   ElementType ElementNumber 

EntryVal.1 1234.56   EntryVal  1 
EntryDes.1 'Current Value' EntryDes  1 

EntryVal.2 4321.0    EntryVal  2 
EntryDes.2 'Another Value' EntryDes  2 

EntryVal.3 6543.21   EntryVal  3 
EntryDes.3 'Final Value'  EntryDes  3 

DESIRED ...

Name   Value 

Current Value 1234.56 
Another Value 4321.0 
Final Value 6543.21 

(分割元件列到的ElementType和ElementNumber列在希望 它可能會幫助)

嘗試了各種子查詢,但沒有發現這個祕密。

可以在PHP中做一些循環,但希望有一個更優雅的唯一單一MySQL查詢方法。

還有其他的列像位置涉及,所以試圖保持乾淨。

+0

什麼表結構和查詢? – Saul 2010-10-27 15:58:30

回答

2

以下是我會做:

SELECT des.Response AS Name, val.Response AS Value 
FROM MyTable AS des JOIN MyTable AS val USING (ElementNumber) 
WHERE des.ElementType = 'EntryDes' AND val.ElementType = 'EntryVal'; 
1

用途:

SELECT MAX(CASE WHEN t.elementtype = 'EntryDes' THEN t.response END) AS Name, 
     MAX(CASE WHEN t.elementtype = 'EntryVal' THEN t.response END) AS Value, 
    FROM YOUR_TABLE t 
GROUP BY t.elementnumber 

你可能要保持elementnumber爲一列,如果你需要確保秩序。