У меня есть 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
Так что для строки с ид = 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