首先我顯示我當前的查詢。左連接選擇最後一行和左連接選擇一行作爲列
SELECT u.id, u.username, GROUP_CONCAT(DISTINCT up.weight) as weights, GROUP_CONCAT(DISTINCT pd.type_change, ':', pd.sum_type_change) as statistics
FROM user u
LEFT JOIN
(SELECT up.weight, up.user_id FROM user_parameter up WHERE up.date BETWEEN '2015-10-10 00:00:00' AND '2017-10-10 00:00:00' ORDER BY up.user_id, up.date ASC) up
ON u.id = up.user_id
LEFT JOIN
(SELECT pd.type_change, count(pd.id) as sum_type_change, dd.user_id FROM diet_day dd
LEFT JOIN product_day pd ON dd.id = pd.diet_day_id
WHERE dd.date_start BETWEEN '2015-10-10 00:00:00' AND '2017-10-10 00:00:00' GROUP BY dd.user_id, pd.type_change) pd
ON u.id = pd.user_id
GROUP BY u.id
這工作得很好,但是我必須第一。減去和up.weight持續的,而不是
GROUP_CONCAT(DISTINCT up.weight)
除此之外,我不得不改變
GROUP_CONCAT(DISTINCT pd.type_change, ':', pd.sum_type_change)
這總是返回字符串如這[1:count,2:count,3:count,4:count] 而不是一列(group_concat)我需要有四個新列。
這是可能的所有這一切在MySQL查詢?
不能在普通的SQL返回一個變量的列數。 – Barmar