0
我有3個表:選擇MySQL的領域依賴於其他字段值
currency
id | name
1 | usd
2 | eur
currency_date
id | date | usd | eur
1 | 22.09.13 | 10 | 12
2 | 23.09.13 | 11 | 13
3 | 24.09.13 | 9 | 10
cost
id | id_currency | id_currency_date | cost
1 | 1 | 2 | 15
因此,對於具有ID =在1 cost
錶行,我們有usd
與交換價值11
。
是否有可能通過其他字段的名稱在不同的表中獲取字段的值?
我認爲它需要是這樣的:
SELECT currency_date.VAR(currency.name) AS cur_val
FROM cost
LEFT JOIN currency ON currency.id = cost.id_currency
LEFT JOIN currency_date ON currency_date.id = cost.id_currency_date
WHERE cost.id = 1
currency_date.VAR(currency.name)只是爲了顯示我想要的東西。
如果您對數據進行了規範化處理,並且在您的currency_date表中爲每種貨幣分別記錄,那麼效果會更好。然後一個簡單的加入就可以完成。 – Tom
如果您無法進行標準化,您可以對解決方案進行硬編碼。你預計未來會增加多種貨幣嗎? – Tom