Перейти к содержимому


Фото
- - - - -

Как перевести телефоны пользователей? SQL


Best Answer Noxter , 19.04.2018 - 15:52

Попробуйте:

UPDATE s_users u LEFT JOIN s_orders o ON u.id=o.user_id SET u.phone=o.phone
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
8 ответов в теме

#1 logan

logan
  • Пользователь
  • 17 сообщений
  • Пользователь
  • Откуда:интернет

Опубликовано 19.04.2018 - 14:47

Здравствуйте.

Есть сайт. На нем уже есть +4000 заказов и в них есть номера.

Вчера в таблице с пользователями добавил phone и теперь в базе есть отдельное поле под пользователей.

 

Мне нужно перевести из заказов пользователей номера телефонов в это поле.

 

Как сделать, чтобы телефоны в таблице users получили именно те пользователи что ранее делали заказы?



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 784 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 19.04.2018 - 15:24

Здравствуйте.
Есть сайт. На нем уже есть +4000 заказов и в них есть номера.
Вчера в таблице с пользователями добавил phone и теперь в базе есть отдельное поле под пользователей.
 
Мне нужно перевести из заказов пользователей номера телефонов в это поле.
 
Как сделать, чтобы телефоны в таблице users получили именно те пользователи что ранее делали заказы?

Ключ это email и\или ФИО, но как показывает практика 100% результата вы не добьетесь, возможны ошибки.
Лучше зарегистрируйте пользователей взяв инфу из заказов.

#3 logan

logan
  • Пользователь
  • 17 сообщений
  • Пользователь
  • Откуда:интернет

Опубликовано 19.04.2018 - 15:28

Ключ это email и\или ФИО, но как показывает практика 100% результата вы не добьетесь, возможны ошибки.
Лучше зарегистрируйте пользователей взяв инфу из заказов.

Я неправильно изложил.

 

Вот что я хочу:

 

Из таблицы s_orders взять по user_id данные из phone и также по user_id их закинуть в строку phone в таблицу s_users. Просто по сути скопировать из таблицы в таблицу только с условием...



#4 yr4ik

yr4ik
  • Фрилансер
  • 871 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 19.04.2018 - 15:37

Не проверял но как то так. Перед выполнением лучше сделайте резервную копию.

UPDATE s_users u LEFT JOIN s_orders o ON (u.id=o.user_id) SET u.phone=IF_NULL(o.phone, '') WHERE u.phone=''


#5 logan

logan
  • Пользователь
  • 17 сообщений
  • Пользователь
  • Откуда:интернет

Опубликовано 19.04.2018 - 15:41

Не проверял но как то так. Перед выполнением лучше сделайте резервную копию.

UPDATE s_users u LEFT JOIN s_orders o ON (u.id=o.user_id) SET u.phone=IF_NULL(o.phone, '') WHERE u.phone=''

Примерно то что нужно, но пишет:

 

dot.gif #1305 - FUNCTION magazindb_default.IF_NULL does not exist
 
и не даёт выполнить.
 
Я в sql вообще не бумбум...


#6 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 784 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 19.04.2018 - 15:52   Best Answer

Попробуйте:
UPDATE s_users u LEFT JOIN s_orders o ON u.id=o.user_id SET u.phone=o.phone


#7 logan

logan
  • Пользователь
  • 17 сообщений
  • Пользователь
  • Откуда:интернет

Опубликовано 19.04.2018 - 15:58

Попробуйте:

UPDATE s_users u LEFT JOIN s_orders o ON u.id=o.user_id SET u.phone=o.phone

Спасибо огромное! Все работает.



#8 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 784 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 19.04.2018 - 16:03

Спасибо огромное! Все работает.

Благодарите не меня, а yr4ik-а, я лишь его код поправил.

#9 logan

logan
  • Пользователь
  • 17 сообщений
  • Пользователь
  • Откуда:интернет

Опубликовано 19.04.2018 - 16:19

Вам обоим большое спасибо. В базе +4000 заказов и телефонов под 3000 вышло. Я бы с ума сошел без вас.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых