Таблица User содержит поля id, name, fruit, veggies, meat.
Таблица FruitType содержит поля id, type, healthy, user.
Давайте предположим, что таблица User выглядит следующим образом:
1, марвин, яблоко, морковь, свинина
2, зорлакс, черника, салат, ягненок
.. в то время как таблица FruitType выглядит так:
1, фрукты, да, 1
2, veggies, yes, 2
Я хотел бы иметь возможность присоединиться к ним и искать значение в Users в определенном поле, в зависимости от значения из ""Тип "поле в FruitType.Например, я хотел бы иметь возможность сделать это:
SELECT User.'type' FROM User
LEFT JOIN FruitType ft ON (ft.user = User.id) etc.. conditions and so on...
По сути, я хочу, чтобы часть 'type' принимала значение поля 'type' в таблице FruitType.Что-то вроде переменной поля, по сути.
Надеюсь, я достаточно ясен.Вот реальный пример, над которым я сейчас работаю, в случае, если это кажется слишком запутанным, хотя реальный может нанести еще больший урон:
IF (trigger_by_date IS NOT NULL,
date_add(books.trigger_by_date, INTERVAL trigger_by_date_add DAY),
date_add(trigger_step_created_at, INTERVAL trigger_by_step_add DAY))
as deadline
В этом случае, trigger_by_date является переменной.Если оно не равно нулю, просто используйте его значение в качестве идентификатора поля.
Редактировать:
Для ясности: в User нет столбца "type".«Тип» в примере запроса должен быть заменен фактическим значением типа в таблице FruitType.Поэтому, если условие дает результат FruitType.type = fruit, я хочу запрос SELECT User.fruit.Если условие дает FruitType.type = veggies, я хочу запрос SELECT User.veggies.Надеюсь, теперь стало понятнее.Я хочу, чтобы поле, которое я выбираю, зависело от типа в FruitType.