Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос цен 
:(
    Опции темы
MrDmitry
Дата 8.7.2011, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Здравствуйте помогите перенести цены из одной таблицы в другую

Структура таблиц одинакова

id
user_id
summ

структура второй таблицы

id
user_id
summ


Нужно перенести только summ

id и user_id одинаковы в обоих таблицах
PM MAIL   Вверх
Zloxa
Дата 8.7.2011, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Код

update table2 set summ = (select summ from table1 where table1.id =table2.id )


Это сообщение отредактировал(а) Zloxa - 8.7.2011, 14:55


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Данкинг
Дата 8.7.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Ну, как-то так в общем случае:
Код

update table2 set table2.summ=table1.summ where table1.id=table2.id



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Zloxa
Дата 8.7.2011, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Данкинг,  from забыл. И это частный случай. )))  Оракля джойнить делит не умеет   smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
MrDmitry
Дата 8.7.2011, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Код

update departament_sum set departament_sum.summ = departament_brand_stat.summ where departament_brand_stat.id = departament_sum.id


так не выходит база mysql

Это сообщение отредактировал(а) MrDmitry - 8.7.2011, 15:32
PM MAIL   Вверх
Zloxa
Дата 8.7.2011, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(MrDmitry @  8.7.2011,  15:32 Найти цитируемый пост)
так не выходит 

Код

update t1 set t1.summ = t2.summ from departament_sum t1, departament_brand_stat t2 where t1.id = t2.id



Это сообщение отредактировал(а) Zloxa - 8.7.2011, 15:34


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
MrDmitry
Дата 11.7.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Извиняюсь что задаю вопрос в этой теме а не создаю новую но вопросы схожи )

Теперь нужно увеличить цену у определенных юзеров


Таблица юзеров(user )

id name phone date login pass email type

таблица цен(departament_sum)

id user_id summ

ЗАпрос


Код

UPDATE b set b.summ = b.summ + 200 FROM  user u, departament_sum b WHERE b.user_id = u.id and u.type=4


mysql ругается (
PM MAIL   Вверх
password
Дата 11.7.2011, 16:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 23.9.2008
Где: Украина, Сумы

Репутация: 3
Всего: 8



Код

UPDATE departament_sum b set b.summ = b.summ + 200 where b.user_id in (select u.id FROM  user u WHERE u.type=4)

PM MAIL Skype   Вверх
MrDmitry
Дата 11.7.2011, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цитата(password @ 11.7.2011,  16:54)
Код

UPDATE departament_sum b set b.summ = b.summ + 200 where b.user_id in (select u.id FROM  user u WHERE u.type=4)

спасибо. Такой запрос работает. Но просто интересно а можно ли сделать такое без вложенного запроса? Вить такой запрос будет существенно дольше обрабатываться.  Хотя в данном случаи скорость обработки и выполнения не критична. Но на будущее хотелось бы узнать )
PM MAIL   Вверх
password
Дата 11.7.2011, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 23.9.2008
Где: Украина, Сумы

Репутация: 3
Всего: 8



Без вложенного запроса пусть тебе еще спецы напишут, можно или нельзя )))
Я бы сделал так.
Увеличить скорость выполнения можно через функцию EXISTS
Код

UPDATE departament_sum b set b.summ = b.summ + 200 where exists (select null FROM  user u WHERE b.user_id=u.id and u.type=4)

PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.2689 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.