Я пытаюсь добиться следующего здесь.
У меня есть 3 стола:
- блоки
- товар
- ингредиенты
Я запрашиваю ингредиенты и, в зависимости от результата, хочу выполнить подзапрос или объединить некоторые столбцы из блоков или элементов.
Мне удалось условно выделить 1 столбец (name
) в моем операторе выбора, но если я хочу выбрать больше одного столбца, например, SELECT name, material_id
, я получаю следующую ошибку:
Для одного допускается только один результат
SELECT, являющийся частью выражения
Я видел много подобных случаев здесь на SO, но не могу понять это правильно.
SELECT
`crafting_recipes`.`ingredient_id`, `crafting_recipes`.`ingredient_table`,
CASE
WHEN
`crafting_recipes`.`ingredient_table` = 'blocks' THEN
(SELECT `name` FROM `blocks` WHERE `id` = `crafting_recipes`.`ingredient_id`)
ELSE
(SELECT `name` FROM `items` WHERE `id` = `crafting_recipes`.`ingredient_id`)
END
FROM
`crafting_recipes`
WHERE
`crafting_recipes`.`result_id` = 15 AND
`crafting_recipes`.`result_table` = "blocks"
Поскольку выбор нескольких столбцов в подвыборке не поддерживается, каков будет правильный способ достижения этого?