logan Опубликовано 19 апреля, 2018 Жалоба Поделиться Опубликовано 19 апреля, 2018 Здравствуйте.Есть сайт. На нем уже есть +4000 заказов и в них есть номера.Вчера в таблице с пользователями добавил phone и теперь в базе есть отдельное поле под пользователей. Мне нужно перевести из заказов пользователей номера телефонов в это поле. Как сделать, чтобы телефоны в таблице users получили именно те пользователи что ранее делали заказы? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 19 апреля, 2018 Жалоба Поделиться Опубликовано 19 апреля, 2018 Здравствуйте. Есть сайт. На нем уже есть +4000 заказов и в них есть номера. Вчера в таблице с пользователями добавил phone и теперь в базе есть отдельное поле под пользователей. Мне нужно перевести из заказов пользователей номера телефонов в это поле. Как сделать, чтобы телефоны в таблице users получили именно те пользователи что ранее делали заказы?Ключ это email и\или ФИО, но как показывает практика 100% результата вы не добьетесь, возможны ошибки. Лучше зарегистрируйте пользователей взяв инфу из заказов. Цитата Ссылка на сообщение Поделиться на другие сайты
logan Опубликовано 19 апреля, 2018 Автор Жалоба Поделиться Опубликовано 19 апреля, 2018 Ключ это email и\или ФИО, но как показывает практика 100% результата вы не добьетесь, возможны ошибки.Лучше зарегистрируйте пользователей взяв инфу из заказов.Я неправильно изложил. Вот что я хочу: Из таблицы s_orders взять по user_id данные из phone и также по user_id их закинуть в строку phone в таблицу s_users. Просто по сути скопировать из таблицы в таблицу только с условием... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 19 апреля, 2018 Жалоба Поделиться Опубликовано 19 апреля, 2018 Не проверял но как то так. Перед выполнением лучше сделайте резервную копию. 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='' Цитата Ссылка на сообщение Поделиться на другие сайты
logan Опубликовано 19 апреля, 2018 Автор Жалоба Поделиться Опубликовано 19 апреля, 2018 Не проверял но как то так. Перед выполнением лучше сделайте резервную копию. 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='' Примерно то что нужно, но пишет: #1305 - FUNCTION magazindb_default.IF_NULL does not exist и не даёт выполнить. Я в sql вообще не бумбум... Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Noxter Опубликовано 19 апреля, 2018 Решение Жалоба Поделиться Опубликовано 19 апреля, 2018 Попробуйте: UPDATE s_users u LEFT JOIN s_orders o ON u.id=o.user_id SET u.phone=o.phone Цитата Ссылка на сообщение Поделиться на другие сайты
logan Опубликовано 19 апреля, 2018 Автор Жалоба Поделиться Опубликовано 19 апреля, 2018 Попробуйте: UPDATE s_users u LEFT JOIN s_orders o ON u.id=o.user_id SET u.phone=o.phone Спасибо огромное! Все работает. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 19 апреля, 2018 Жалоба Поделиться Опубликовано 19 апреля, 2018 Спасибо огромное! Все работает.Благодарите не меня, а yr4ik-а, я лишь его код поправил. Цитата Ссылка на сообщение Поделиться на другие сайты
logan Опубликовано 19 апреля, 2018 Автор Жалоба Поделиться Опубликовано 19 апреля, 2018 Вам обоим большое спасибо. В базе +4000 заказов и телефонов под 3000 вышло. Я бы с ума сошел без вас. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.