這是我第一篇文章。MYSQL行到使用CASE,GROUP BY的列...那麼不同的版本呢?
我的問題是類似於前一個線程儘管不同: mysql converting multiple rows into columns in a single row
什麼我真的是一個大的形式。有很多表單(真的),每個表單都有相同的設置。每個表格都有標籤和值,但表格中的值可以更改,表格只顯示「最新」值。數據庫有幾個表,但這些重要的是field_labels和field_values。這兩個鏈接可能會被懷疑,而field_value表有一個「日期」列。
現在,我想要做的是選擇field_label.id和最新值(field_value.fv_value)。首先,我認爲這可能適用於CASE,但問題在於,CASE在找到匹配的匹配後立即停止搜索表格,我想選擇最新匹配,而不僅僅匹配第一個匹配。
我到目前爲止唯一的好主意是使用子查詢,並通過首先按標籤的(鏈接)標識排序,然後按值的「日期」對其進行排序。下面是我得到的
SELECT T.msdsid,
field_label.id,
(CASE WHEN field_label.id = 1 THEN T.fv_value ELSE NULL END) AS value
FROM (SELECT * FROM field_value ORDER BY field_value.fl_id,field_value.date DESC) AS T
LEFT JOIN field_label ON(T.fl_id=field_label.id)
GROUP BY T.refid;
現在,這不正是我想要什麼,但是......有沒有更好的辦法?
在此先感謝。