通过显示现有数据结构和所需结果的简化视图,更容易描述......
目前...
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 :(得分: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 :(得分: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
保留为列,以防您需要确保订单。