Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Есть таблица lot_1, в ней есть список товаров с уникальными id
-------------
| desc | id |
-------------
| Носки | 1 |
| Трусы | 2 |
-------------
Есть таблица lot_2, в ней список других товаров с уникальными id
Есть таблица заказов user_cart, в которой заказанные товары представляются столбцами:
1) Таблица заказанного товара
2) id заказанного товара в таблице
Заказов может быть много из разных таблиц, то есть возникает таблица
---------------------
| tablename | itemId |
---------------------
| lot_1 | 1 |
| lot_2 | 2 |
---------------------
Чтобы мне забрать информацию о товаре (при выводе корзины), мне нужно обратиться в соответствующую таблицу, а потом вывести полученные данные.
Вопрос в том, можно ли это делать в одном запросе? Мне же, при выводе каждой строки нужно обращаться к другой (и каждый раз разной) таблице.
И как это делать? Создавая временную таблицу или как-то JOINами можно?
Спасибо
Неактивен
Если хотите делать это на "чистом" sql, то придётся использовать подготовленные выражения. В данном случае проще на клиенте вытаскивать значения из столбца table_name, формировать соответствующие запросы и их уже на базу натравливать. Можно в цикле серией запросов, а можно через union сформировать один запрос.
Неактивен
Сложность возникает из-за того, что Вы, скорее всего, не правильно спроектировали структуру данных: почему бы информацию о всех товарах не хранить в одной таблице, т.е. создать справочник товаров. Зачем товары раскидывать по разным таблицам? Ведь у таблиц lot1 и lot2 одинаковая структура? Т.е. создать справочник товаров lot3 следующей структуры: desc, id, typ. Т.е. добавить еще одно поле typ - тип товара.
После этого запрос будет очень простым:
select * from lot3 inner join user_cart
on lot3.id=user_cart.id
Неактивен