Я считаю, что это просто простое объединение состояний.Я не очень много работал с SQL в последнее время и, кажется, забыл, как это сделать.У меня есть элемент с несколькими столбцами, который ссылается на другую таблицу с именем этого поля.Например:
id, name, effect1, effect2, effect3, effect4
Эффекты ссылаются на другую таблицу, в которой есть только столбцы a
, id
и name
.То, что я пытаюсь сделать, это запустить запрос, который будет извлекать эти имена для каждого из этих эффектов.
Что-то вроде:
SELECT i.name,e.name AS effect1, e.name AS effect2, e.name AS effect3,
e.name AS effect4
FROM item i, effects e
WHERE i.effect1 = e.name
AND i.effect2 = e.name
AND i.effect3 = e.name
AND i.effect4 = e.name
Итак, скажем, у меня есть элемент, который имеет значениякак это:
Toast, 1, 2, 3, 4
и эффекты:
1, burned
2, untoasted
3, wet
4, texas
Я хочу, чтобы он отображал toast, burned, untoasted, wet, texas
И идеи?
обновление:
Table items
id, name, weight, value, effect1,effect2,effect3,effect4
Table effects
id, name
В столбце effect1, ... указывается номер идентификатора соответствующего элемента в таблице эффектов.Многие элементы будут использовать одни и те же эффекты, поэтому вместо того, чтобы наполнять эту и без того большую базу данных избыточными данными, я решил использовать объединение для экономии места.В то же время мне удалось как забыть это сделать, LOL
Обновление № 2 Это эффект, который я собираюсь, но на более чем один из столбцов эффектов
SELECT i.name, i.weight,i.value, e.name AS 'effect 1'
FROM ingredients i JOIN effects e ON effects._id=i.effect1
Это работает для 1, но если я пытаюсь сделать несколько, это просто вылетает.Любые идеи, как я могу получить этот эффект для всех 4 эффектов?