我有2個表格。一位名爲購買與在子查詢中動態設置列名稱
(ID,一個月,購買,STOREID)
另一種叫purchases_targets與
(ID,STOREID,目標1,TARGET2, target3,target4,target5,target6,target7,target8,target9,target10,target11,target12)
purchases_targets中的列名稱與月份相對應,即月份1 = target1的目標。 正常化這不是我的選擇! 我想要做的是類似於以下內容。
SELECT DISTINCT
purchases.month,
purchases.purchase,
CONCAT('target',purchases.month) AS column_name,
(SELECT
column_name
FROM purchases_targets
WHERE storeid = 1) AS 'target'
FROM purchases
WHERE purchases.storeid = 1
注意使用上述列名的。我試過這個,結果總是返回目標列的目標+月份。我想知道是否有一種方法可以使這個工作在MySQL中。讓我知道是否需要更多信息。謝謝
你需要使用動態SQL與'PREPARE',你不能在一個普通的查詢計算列名。 – Barmar
我已經看過你在說什麼的例子,但是它們都不屬於子查詢。我如何在我的情況下使用PREPARE方法。 – castle
這似乎是一個設計不佳的模式。爲什麼不有一個月份列的值爲1到12? – Barmar