SQLite-запрос с несколькими соединениями

Я считаю, что это в значительной степени простое соединение с statemnet. В последнее время я мало работал с 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 

Я хочу, чтобы он отображал тост, сожженный, тосты, мокрый, техас

И идеи?

обновление:

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 эффектов?

11
задан FGM 28 November 2018 в 16:29
поделиться