Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Доброго времени суток! Очень нуждаюсь в помощи.
Значит:
2 таблицы 1 - product, 2-product_description
Нужно
обновить столбец "model" таблицы 1 из столбца "name" таблицы 2
кол-во строк столбцов совпадает.
Именно нужно обновить запросом update.
Неактивен
По какому критерию нужно соотносить строки таблиц?
Приведите небольшой пример данных из обеих таблиц.
Неактивен
Исходник 1
таблица - product
столбец - model (в некоторых строках есть записи, которые должны измениться в соответствии строки столбца донора)
Исходник 2
таблица - product_description
столбец - name (заполнены все строки)
Результат должен быть:
дублирование столбца "name" в столбец "model" путем обновления поскольку в строках столбца "model" есть записи. Повторюсь, что количество строк соответствует.
Неактивен
Вы не ответили на вопрос как соотносить строки.
Вам нужен update двух таблиц, см синтаксис и примеры http://dev.mysql.com/doc/refman/5.5/en/update.html
Неактивен
Да, без критерия соотношения строк я бы наверное очистил сперва таблицу product, а потом выполнил
Неактивен
Я извиняюсь, может не правильно объясняю что мне нужно. Просто я очень далек от этого.
Конечный результат это точная копия столбца name таблицы product_description в столбец model таблицы product
Прикрепил Xls с примером
Неактивен
Судя по Вашему файлу - предложеныый мной метод вполне подойдёт, раз никакого соответствия нет между строками.
Неактивен
))) Вообщем-то по логике так но вот как очистить столбец? И как ваш запрос поймет, что именно из одного столбца в другой если в запросе указаны только таблицы полностью?
Неактивен
как удалить из столбца разобрался update product set product .model="";
))))
Теперь наверное легче задача
как скопировать столбец name табл. product_description в model табл. product?
Неактивен
Вы так писали, как будто по одному столбцу в таблице.
Очистить таблицу можно двумя путями
truncate t
или
delete from t
Запрос поймет, потому что и в первой и в последней таблице по одному столбцу - у него "выбора" особого не останется. Если же в той или иной табличке больше столбцов - то приводите структуры таблиц полностью.
Неактивен
да я собственно привел пример на одном столбце по скольку только их менять нужно, а так их там штук 15.
Неактивен
На Ваш вопрос нет корректного ответа, пока не назовете критерий соответствия строк в таблицах.
Неактивен
критерием является столбец product_id. Вы это имели ввиду ?
Неактивен
Думаю да, но Вы пишете про него впервые, хотя с этого по идее стоило начать.
Приведите сюда результаты запросов
show create table `product_description`;
и
show create table `product`;
Неактивен
Table
Create Table
product_description
CREATE TABLE `product_description` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`language_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
`meta_description` varchar(255) NOT NULL,
`meta_keyword` varchar(255) NOT NULL,
`seo_title` varchar(255) NOT NULL,
`seo_h1` varchar(255) NOT NULL,
`tag` text NOT NULL,
PRIMARY KEY (`product_id`,`language_id`),
KEY `name` (`name`),
FULLTEXT KEY `description` (`description`),
FULLTEXT KEY `tag` (`tag`)
) ENGINE=MyISAM AUTO_INCREMENT=13494 DEFAULT CHARSET=utf8
----------------------------
product
CREATE TABLE `product` (
`product_id` int(11) NOT NULL AUTO_INCREMENT,
`model` varchar(64) NOT NULL,
`sku` varchar(64) NOT NULL,
`upc` varchar(12) NOT NULL,
`ean` varchar(14) NOT NULL,
`jan` varchar(13) NOT NULL,
`isbn` varchar(13) NOT NULL,
`mpn` varchar(64) NOT NULL,
`location` varchar(128) NOT NULL,
`quantity` int(4) NOT NULL DEFAULT '0',
`stock_status_id` int(11) NOT NULL,
`image` varchar(255) DEFAULT NULL,
`manufacturer_id` int(11) NOT NULL,
`shipping` tinyint(1) NOT NULL DEFAULT '1',
`price` decimal(15,4) NOT NULL DEFAULT '0.0000',
`points` int(8) NOT NULL DEFAULT '0',
`tax_class_id` int(11) NOT NULL,
`date_available` date NOT NULL,
`weight` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`weight_class_id` int(11) NOT NULL DEFAULT '0',
`length` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`width` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`height` decimal(15,8) NOT NULL DEFAULT '0.00000000',
`length_class_id` int(11) NOT NULL DEFAULT '0',
`subtract` tinyint(1) NOT NULL DEFAULT '1',
`minimum` int(11) NOT NULL DEFAULT '1',
`sort_order` int(11) NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '0',
`date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`date_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`viewed` int(5) NOT NULL DEFAULT '0',
`parser_hash` varchar(32) NOT NULL,
PRIMARY KEY (`product_id`),
KEY `parser_hash` (`parser_hash`)
) ENGINE=MyISAM AUTO_INCREMENT=26948 DEFAULT CHARSET=utf8
Неактивен
Вопрос решился методом тыка))
UPDATE `product`, `product_description` SET `product`.`model` = `product_description`.`name`
WHERE `product`.`product_id` = `product_description`.`product_id`;
Неактивен
Да, можно и так.
Неактивен
Страниц: 1