Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: изменение содержимого поля из связанной таблицы
 
 автор: larush   (12.09.2005 в 12:49)   письмо автору
 
 

мне нравится тут находиться - всегда найдется оперативная и практически он- лайн помощь :-)
Возник следующий вопрос, который не могу сам разрешить или найти в книгах.

Имею текстовое поле [txt_Должность], решил внедрить [int_Должность_1] и заполнить его из справочника с полями [int_id], [txt_Должность], которые я сформировал из предыдущей таблицы.

Что я пытался сделать:
UPDATE "my_tabl" set "int_Должность_1" value ( а тут надо написать int_id, при этом связать 2 таблицы). (Кавычки указал для наглядности)

SELECT выглядит и работает нормально

   
 
 автор: cheops   (12.09.2005 в 13:41)   письмо автору
 
   для: larush   (12.09.2005 в 12:49)
 

А не могли бы вы привести структуру таблиц (получить её можно при помощи оператора SHOW CREATE TABLE)? Указать свою версию MySQL?

При работе оператора UPDATE с двумя таблицами вам потребуется писать
UPDATE tbl1, tbl2 SET ...

Т.е. указать обе таблицы и использовать расширенные имена, но для составления конкретного запроса нужно больше информации, так как не очень понятно...

   
 
 автор: XPraptor   (12.09.2005 в 14:53)   письмо автору
 
   для: cheops   (12.09.2005 в 13:41)
 

Вот до 3.23 - UPDATE в MySQL, по моему, точно мог только одну таблицу упдатить, а старше не знаю, нужно посмотреть описание синтаксиса UPDATE.

   
 
 автор: larush   (12.09.2005 в 19:00)   письмо автору
 
   для: cheops   (12.09.2005 в 13:41)
 

версия 4.0.18-nt

струтура таблиц до ужаса простая

CREATE TABLE 'sp_sec' (
'id' tinyint(2) NOT NULL auto_increment,
'sector' varchar(40) NOT NULL default '',
PRIMARY KEY ('id')
) TYPE=MyISAM

CREATE TABLE 'main' (
'id' int(11) NOT NULL auto_increment,
'fam' varchar(80) NOT NULL default '',
'otdel' tinyint(2) NOT NULL default '0',
'sec' varchar(30) NOT NULL default '0',
PRIMARY KEY ('id')
) TYPE=MyISAM

так вот сначала я залил из экспортнутого excell справочника данные, в которых сектор был текстовым (поле SEC). Затем я сделал таблицу sp_sec, которую заполнил уникальными значениями из MAIN.SEC. Теперь я хочу внести вместо текстового значения названия сектора, его идентификатор (поле OTD).

   
 
 автор: cheops   (13.09.2005 в 01:42)   письмо автору
 
   для: larush   (12.09.2005 в 19:00)
 

Запрос должен выглядеть примерно следующим образом
UPDATE sp_sec, main SET main.sec = sp_sec.id
WHERE main.sec = sp_sec.sector

   
 
 автор: larush   (13.09.2005 в 09:08)   письмо автору
 
   для: cheops   (13.09.2005 в 01:42)
 

Спасибо ! Действительно все получилось :-)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования