SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.09.2013 11:22:30

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Обновление столбца одной таблицы из другого столбца другой таблицы

Доброго времени суток! Очень нуждаюсь в помощи.
Значит:
2 таблицы 1 - product, 2-product_description
Нужно
обновить столбец "model" таблицы 1 из столбца "name" таблицы 2
кол-во строк столбцов совпадает.

Именно нужно обновить запросом update.

Неактивен

 

#2 09.09.2013 11:27:49

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

По какому критерию нужно соотносить строки таблиц?
Приведите небольшой пример данных из обеих таблиц.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 09.09.2013 11:40:31

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Исходник 1
таблица - product
столбец - model          (в некоторых строках есть записи, которые должны измениться в соответствии строки столбца донора)
Исходник 2
таблица - product_description
столбец - name   (заполнены все строки)
Результат должен быть:
дублирование столбца "name" в столбец "model" путем обновления поскольку в строках столбца "model" есть записи. Повторюсь, что количество строк соответствует.

Неактивен

 

#4 09.09.2013 12:01:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Вы не ответили на вопрос как соотносить строки.

Вам нужен update двух таблиц, см синтаксис и примеры http://dev.mysql.com/doc/refman/5.5/en/update.html

Неактивен

 

#5 09.09.2013 12:21:06

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Да, без критерия соотношения строк я бы наверное очистил сперва таблицу product, а потом выполнил

insert into product select * from product_description

Если же соотносить строки, то топикстартер дал мало инфы )).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#6 09.09.2013 12:26:56

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Я извиняюсь, может не правильно объясняю что мне нужно. Просто я очень далек от этого.
Конечный результат это точная копия столбца name таблицы product_description в столбец model таблицы product
Прикрепил Xls с примером


Прикрепленные файлы:
Attachment Icon база.xls, Размер: 27,136 байт, Скачано: 760

Неактивен

 

#7 09.09.2013 12:47:45

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Судя по Вашему файлу - предложеныый мной метод вполне подойдёт, раз никакого соответствия нет между строками.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#8 09.09.2013 12:52:01

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

))) Вообщем-то по логике так но вот как очистить столбец? И как ваш запрос поймет, что именно из одного столбца в другой если в запросе указаны только таблицы полностью?

Неактивен

 

#9 09.09.2013 12:57:47

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

как удалить из столбца разобрался update product set product .model="";
))))
Теперь наверное легче задача
как скопировать столбец name табл. product_description в model табл. product?

Неактивен

 

#10 09.09.2013 12:58:51

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Вы так писали, как будто по одному столбцу в таблице.
Очистить таблицу можно двумя путями
truncate t
или
delete from t

Запрос поймет, потому что и в первой и в последней таблице по одному столбцу - у него "выбора" особого не останется. Если же в той или иной табличке больше столбцов - то приводите структуры таблиц полностью.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 09.09.2013 13:01:29

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

да я собственно привел пример на одном столбце по скольку только их менять нужно, а так их там штук 15.

Неактивен

 

#12 09.09.2013 13:09:04

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

На Ваш вопрос нет корректного ответа, пока не назовете критерий соответствия строк в таблицах.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#13 09.09.2013 13:11:41

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

критерием является столбец product_id. Вы это имели ввиду ?

Неактивен

 

#14 09.09.2013 13:18:53

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Думаю да, но Вы пишете про него впервые, хотя с этого по идее стоило начать.

Приведите сюда результаты запросов
show create table `product_description`;
и
show create table `product`;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#15 09.09.2013 13:33:19

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

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

Неактивен

 

#16 09.09.2013 14:14:31

ujenzp
Участник
Зарегистрирован: 09.09.2013
Сообщений: 9

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Вопрос решился методом тыка))

UPDATE `product`, `product_description` SET `product`.`model` = `product_description`.`name`
WHERE `product`.`product_id` = `product_description`.`product_id`;

Неактивен

 

#17 09.09.2013 17:52:30

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Обновление столбца одной таблицы из другого столбца другой таблицы

Да, можно и так.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson