Всех приветствую.
Из кучи связанных таблиц нужно получить новую, в которой значение поля, ссылающееся на связанную таблицу станет столбцом, а значением полей этого столбца станет значение из связанной таблицы.
Что у меня получилось:
Первым запросом получаю товар:
SELECT id as my_product_id, name as my_product_name
FROM products
WHERE id = 'ПЧ9'
Результат:
Далее связываю ее с таблицей, где лежит информация о связях, вот она:
Столбец book_name является названием таблицы, где лежит значение, а book_id - соответственно id, к примеру строка, где book_name = book_format_disk и book_id = 1 соответствует таблице book_format_disk и полю с id 1:
SQL запрос для связи:
SELECT id as my_product_id, name as my_product_name, book_name AS book_bind_name, book_id AS book_bind_id
FROM products
JOIN product_book on product_book.product_id = products.id
WHERE id = 'ПЧ9'
Результат:
Один JOIN у меня получился, запрос:
SELECT products.id as my_product_id, products.name as my_product_name, book_name AS book_bind_name, book_binding.name AS book_binding_name
FROM products
JOIN product_book on product_book.product_id = products.id
JOIN book_binding ON book_name = 'book_binding' AND book_binding.id = product_book.book_id
WHERE products.id = 'ПЧ9'
Результат:
В столбец book_binding_name легло значение из таблицы book_binding с id 2, т.е 'Мягкий'.
Таким же образом мне надо стянуть информацию и с остальных таблиц, только как - второй день не пойму.
Можно ли вообще эту задачу выполнить одним запросом или есть другие методы?
Спасибо.