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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: вставить значения из одной талицы в другую - в чем ошибка

Сообщения:  [1-10]   [11-13] 

 
 автор: Trianon   (16.09.2008 в 19:08)   письмо автору
 
   для: zeta777   (16.09.2008 в 18:50)
 

.

  Ответить  
 
 автор: zeta777   (16.09.2008 в 18:50)   письмо автору
 
   для: Trianon   (16.09.2008 в 18:13)
 

Спасибо большое.

  Ответить  
 
 автор: Trianon   (16.09.2008 в 18:13)   письмо автору
 
   для: zeta777   (16.09.2008 в 18:08)
 

Явно оговоренный JOIN ... ON ... как правило оптимизируется лучше.

  Ответить  
 
 автор: zeta777   (16.09.2008 в 18:08)   письмо автору
 
   для: Root   (16.09.2008 в 18:02)
 

Спасибо и за этот вариант. Он вообще-то как-то привычнее.. А какой быстрее сработает? Записей-то мнооого будет...

  Ответить  
 
 автор: zeta777   (16.09.2008 в 18:06)   письмо автору
 
   для: Trianon   (16.09.2008 в 18:00)
 

Спасибо. Надо думать хоть немного, прежде, чем задавать глупые вопросы :)

  Ответить  
 
 автор: Root   (16.09.2008 в 18:02)   письмо автору
 
   для: zeta777   (16.09.2008 в 17:37)
 


UPDATE table2 AS t2, table1 AS t1
SET
t2.field2 = t1.field2,
t2.field3 = t1.field3
WHERE t2.field1 = t1.field1;

  Ответить  
 
 автор: Trianon   (16.09.2008 в 18:00)   письмо автору
 
   для: zeta777   (16.09.2008 в 17:54)
 

SET 
   table2.field2 = table1.field2, 
   table2.field3 = table1.field3


если бы были упомянуты обе таблицы - обновились бы поля в обеих.

  Ответить  
 
 автор: zeta777   (16.09.2008 в 17:54)   письмо автору
 
   для: Trianon   (16.09.2008 в 17:51)
 

извиняюсь за тупизм, но которая таблица в данном случае проапдейтится? table1 или table2?

  Ответить  
 
 автор: Trianon   (16.09.2008 в 17:51)   письмо автору
 
   для: zeta777   (16.09.2008 в 17:37)
 

>А вот если нужно несколько полей проапдейтить - что-то не пойму.
Тогда нужно сделать апдейт по соединению таблиц. Кстати, для одного поля тоже лучше применять соединение.

UPDATE 
    table1 JOIN table2 ON table2.field1=table1.field1
SET 
   table2.field2 = table1.field2, 
   table2.field3 = table1.field3

  Ответить  
 
 автор: zeta777   (16.09.2008 в 17:37)   письмо автору
 
   для: Trianon   (15.09.2008 в 18:32)
 

А как можно проапдейтить? Не подскажите синтаксис?


UPDATE table2 set table2.field2=(SELECT filed2 from table1 WHERE table2.field1=table1.field1);

работает нормально

А вот если нужно несколько полей проапдейтить - что-то не пойму.

UPDATE table2 set table2.field2=(SELECT filed2 from table1) AND table2.field3=(SELECT filed3 from table1) WHERE table2.field1=table1.field1;

Так? Или я чего-то с кавычками намудрила? Или все неверно?

  Ответить  

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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