Вставить значения в таблицу в зависимости от id строк в другой таблице

Статус
В этой теме нельзя размещать новые ответы.

fortuner

Хранитель порядка
Регистрация
26 Июн 2012
Сообщения
631
Реакции
1.238
Ребята, помогите-спасите!

Есть таблица, в которой прописаны значения:
- ID строки (последовательный номер)
- ID товара (нужно взять из другой таблицы, от первого до последнего, таблица ps_product, столбец id_product)
- комбинация (не использую, всегда 0)
- ID магазина (их три, поэтому для каждого товара три строки: 1, 2, 3)
- ID группы магазина (тоже 0)
- Количество товара (товара нет, 0)
- Хранится на складе (нужно выставить 1)
- Действия, если товар закончился (нужно выставить 2)

Должен получиться такой результат:

Код:
INSERT INTO `ps_stock_available` (`id_stock_available`, `id_product`, `id_product_attribute`, `id_shop`, `id_shop_group`, `quantity`, `depends_on_stock`, `out_of_stock`) VALUES

-- Товар 1
(1, 1, 0, 1, 0, 0, 1, 2),
(2, 1, 0, 2, 0, 0, 1, 2),
(3, 1, 0, 3, 0, 0, 1, 2),
-- Товар 2
(4, 2, 0, 1, 0, 0, 1, 2),
(5, 2, 0, 2, 0, 0, 1, 2),
(6, 2, 0, 3, 0, 0, 1, 2),

...

-- Товар N
(x,   N, 0, 1, 0, 0, 1, 2),
(x+1, N, 0, 2, 0, 0, 1, 2),
(x+2, N, 0, 3, 0, 0, 1, 2),

Как написать запрос в БД, чтобы получилось так???
Я понимаю, что это элементарно, но в SQL я полный ламер, помогите кто чем может.

Для вставки значений из другой таблицы можно использовать конструкцию INSERT INTO ... SELECT по такому принципу:
Спасибо, это то что надо!
 
Последнее редактирование модератором:
Получаешь данные. И оформляешь их в запрос.
Код:
$sql = 'INSERT INTO ps_stock_available(
                            id_stock_available,
                            id_product,
                            id_product_attribute,
                            id_shop,
                            id_shop_group,
                            quantity,
                            depends_on_stock,
                            out_of_stock
            )
            VALUES(
                        $item[id_stock_available],
                        $item[id_product],
                        $item[id_product_attribute],
                        $item[id_shop],
                        $item[id_shop_group],
                        $item[quantity],
                        $item[depends_on_stock],
                        $item[out_of_stock])';
$result = mysql_query($sql) or die("Ошибка: " . mysql_error());
 
Для вставки значений из другой таблицы можно использовать конструкцию INSERT INTO ... SELECT по такому принципу:
Код:
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 1, 0, 0, 1, 2;

Первую колонку (id_stock_available) просто сделайте auto_increment, и она заполнится последовательными id автоматически при вставке строк.
Как вставить сразу 3 строки (1,2,3) не знаю, разве что выполнить 3 последовательных запроса, а затем отсортировать всю таблицу по id_product:
Код:
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 1, 0, 0, 1, 2;
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 2, 0, 0, 1, 2;
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 3, 0, 0, 1, 2;
ALTER TABLE `ps_stock_available` ORDER BY `id_product`;
 
Для вставки значений из другой таблицы можно использовать конструкцию INSERT INTO ... SELECT по такому принципу:
Код:
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 1, 0, 0, 1, 2;

Первую колонку (id_stock_available) просто сделайте auto_increment, и она заполнится последовательными id автоматически при вставке строк.
Как вставить сразу 3 строки (1,2,3) не знаю, разве что выполнить 3 последовательных запроса, а затем отсортировать всю таблицу по id_product:
Код:
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 1, 0, 0, 1, 2;
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 2, 0, 0, 1, 2;
INSERT INTO `ps_stock_available` SELECT `id_product` FROM `ps_product`, 0, 3, 0, 0, 1, 2;
ALTER TABLE `ps_stock_available` ORDER BY `id_product`;
3 таким же методом , главное чтобы у всех 3 одно поле зависимое было =)
Может кто знает как с комбинацией 1 и 2 / 1 и 3?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху