Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Подскажите SQL запрос, скопировать столбец с базы 1 в базу 2


sasha12345

Recommended Posts

Добрый день. Подскажите SQL запрос, с базы test1, с таблицы poduct_description, скопировать столбец mini_description с данными  в  базу test2 за тем же адресом что и test1

Надіслати
Поділитися на інших сайтах


19 hours ago, sasha12345 said:

Добрый день. Подскажите SQL запрос, с базы test1, с таблицы poduct_description, скопировать столбец mini_description с данными  в  базу test2 за тем же адресом что и test1

есть необязательное, но очень желательное условие: обе базы должны быть на одном сервере. Так же, в структуре таблицы poduct_description из базы test2 должен существовать столбец mini_description. Есть он у Вас там?

 

А так, все просто - используется синтаксис типа insert into db1.table1 (value1) select value1 from db2.table2

Так что итоговой запрос будет такой:

 

INSERT INTO test2.poduct_description (mini_description)
SELECT mini_description FROM test2.poduct_description

 

Но что-то мне подсказывает, что результат Вас не устроит )) Потому что условия задачи некорректные. Выполнение запроса выше по Вашим условиям, просто насоздает кучу новых строк в таблице с одним единственным заполненным полем mini_description. Можно не одно поле селектить\инсертить - хоть все поля таблицы. Получится дубль целой таблицы или их объединение ))

 

Cкорее всего, Вам нужно что бы существующие строки в базе test2 ДОПОЛНИЛИСЬ полем мини-дисткрипшн из соответствующих им строк в базе test1. Ага?

Если так, то нужно знать, по каким полям искать соответствие между таблицами в разных базах (id-шники товаров не совпадают поди в таблицах; может по столбцу name искать соответствие - оно одинаковое?)

Волшебно будет, если приложите образец данных с каждой таблицы. Хоть по паре строк, которые нужно объединить. Скришнот там или че... тогда получится предметно помочь, а не советы давать а-ля гадание на кофейной гуще.

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

В 18.08.2018 в 10:49, 100napb сказал:

есть необязательное, но очень желательное условие: обе базы должны быть на одном сервере. Так же, в структуре таблицы poduct_description из базы test2 должен существовать столбец mini_description. Есть он у Вас там?

 

А так, все просто - используется синтаксис типа insert into db1.table1 (value1) select value1 from db2.table2

Так что итоговой запрос будет такой:

 

INSERT INTO test2.poduct_description (mini_description)
SELECT mini_description FROM test2.poduct_description

 

Но что-то мне подсказывает, что результат Вас не устроит )) Потому что условия задачи некорректные. Выполнение запроса выше по Вашим условиям, просто насоздает кучу новых строк в таблице с одним единственным заполненным полем mini_description. Можно не одно поле селектить\инсертить - хоть все поля таблицы. Получится дубль целой таблицы или их объединение ))

 

Cкорее всего, Вам нужно что бы существующие строки в базе test2 ДОПОЛНИЛИСЬ полем мини-дисткрипшн из соответствующих им строк в базе test1. Ага?

Если так, то нужно знать, по каким полям искать соответствие между таблицами в разных базах (id-шники товаров не совпадают поди в таблицах; может по столбцу name искать соответствие - оно одинаковое?)

Волшебно будет, если приложите образец данных с каждой таблицы. Хоть по паре строк, которые нужно объединить. Скришнот там или че... тогда получится предметно помочь, а не советы давать а-ля гадание на кофейной гуще.

да есть столбец пустой.

Закинул запрос, выдает ошибку http://prntscr.com/kkgwm4

Змінено користувачем sasha12345
Надіслати
Поділитися на інших сайтах


В 18.08.2018 в 10:49, 100napb сказал:

есть необязательное, но очень желательное условие: обе базы должны быть на одном сервере. Так же, в структуре таблицы poduct_description из базы test2 должен существовать столбец mini_description. Есть он у Вас там?

 

А так, все просто - используется синтаксис типа insert into db1.table1 (value1) select value1 from db2.table2

Так что итоговой запрос будет такой:

 

INSERT INTO test2.poduct_description (mini_description)
SELECT mini_description FROM test2.poduct_description

 

Но что-то мне подсказывает, что результат Вас не устроит )) Потому что условия задачи некорректные. Выполнение запроса выше по Вашим условиям, просто насоздает кучу новых строк в таблице с одним единственным заполненным полем mini_description. Можно не одно поле селектить\инсертить - хоть все поля таблицы. Получится дубль целой таблицы или их объединение ))

 

Cкорее всего, Вам нужно что бы существующие строки в базе test2 ДОПОЛНИЛИСЬ полем мини-дисткрипшн из соответствующих им строк в базе test1. Ага?

Если так, то нужно знать, по каким полям искать соответствие между таблицами в разных базах (id-шники товаров не совпадают поди в таблицах; может по столбцу name искать соответствие - оно одинаковое?)

Волшебно будет, если приложите образец данных с каждой таблицы. Хоть по паре строк, которые нужно объединить. Скришнот там или че... тогда получится предметно помочь, а не советы давать а-ля гадание на кофейной гуще.

Структура такая http://prntscr.com/kkh31f

Надіслати
Поділитися на інших сайтах


29 minutes ago, sasha12345 said:

да есть столбец пустой.

Закинул запрос, выдает ошибку http://prntscr.com/kkgwm4

эм... я не вижу Ваших таблиц и данных - отталкиваюсь лишь от Вашей же информации. Сам по себе SQL-запрос верный. Возможные ошибки:

  • Вы скопировали\вставили запрос не полностью (на скрине он обрезанный, т.к. нет второй строки из моего примера выше "SELECT mini_description FROM test2.poduct_description" )
  • разве в названиях Ваших таблиц нет префикса типа ос_ ? :) то есть, таблица на самом деле называется poduct_description, а не oc_poduct_description ?

Хорошо, что столбец есть. А что касается второй части моего вопроса:

29 minutes ago, sasha12345 said:

Cкорее всего, Вам нужно что бы существующие строки в базе test2 ДОПОЛНИЛИСЬ полем мини-дисткрипшн из соответствующих им строк в базе test1. Ага?

Если так, то нужно знать, по каким полям искать соответствие между таблицами в разных базах (id-шники товаров не совпадают поди в таблицах; может по столбцу name искать соответствие - оно одинаковое?)

Это так? если да, то а) запрос будет другой б) не советую выполнять тот, что указан выше, т.к. создадите уйму ненужных новых строк

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

3 минуты назад, 100napb сказал:

эм... я не вижу Ваших таблиц и данных - отталкиваюсь лишь от Вашей же информации. Сам по себе SQL-запрос верный. Возможные ошибки:

  • Вы скопировали\вставили запрос не полностью (на скрине он обрезанный, т.к. нет второй строки из моего примера выше "SELECT mini_description FROM test2.poduct_description" )
  • разве в названиях Ваших таблиц нет префикса типа ос_ ? то есть, таблица на самом деле называется poduct_description, а не oc_poduct_description ?

Хорошо, что столбец есть. А что касается второй части моего вопроса:

Это так? если да, что запрос будет другой

Таблица называется poduct_description без oc_

Надіслати
Поділитися на інших сайтах


6 минут назад, 100napb сказал:

эм... я не вижу Ваших таблиц и данных - отталкиваюсь лишь от Вашей же информации. Сам по себе SQL-запрос верный. Возможные ошибки:

  • Вы скопировали\вставили запрос не полностью (на скрине он обрезанный, т.к. нет второй строки из моего примера выше "SELECT mini_description FROM test2.poduct_description" )
  • разве в названиях Ваших таблиц нет префикса типа ос_ ? то есть, таблица на самом деле называется poduct_description, а не oc_poduct_description ?

Хорошо, что столбец есть. А что касается второй части моего вопроса:

Это так? если да, что запрос будет другой

http://prntscr.com/kkh8s1

Надіслати
Поділитися на інших сайтах


С

12 минут назад, 100napb сказал:

эм... я не вижу Ваших таблиц и данных - отталкиваюсь лишь от Вашей же информации. Сам по себе SQL-запрос верный. Возможные ошибки:

  • Вы скопировали\вставили запрос не полностью (на скрине он обрезанный, т.к. нет второй строки из моего примера выше "SELECT mini_description FROM test2.poduct_description" )
  • разве в названиях Ваших таблиц нет префикса типа ос_ ? то есть, таблица на самом деле называется poduct_description, а не oc_poduct_description ?

Хорошо, что столбец есть. А что касается второй части моего вопроса:

Это так? если да, что запрос будет другой

Скопировать весь столбец mini_description чтобы id 43 совпадал как на скрине

Надіслати
Поділитися на інших сайтах


7 minutes ago, sasha12345 said:

Так. Великолепно. Это скриншот из базы, где есть и заполнено мини-дискрипшн.

 

Если Вам нужно аккуратно ДОПОЛНИТЬ таблицу из другой базы, в которой все то же самое, но только поле мини-дискрипшн пустое, то покажите пожалуйста такой же скрин из другой базы, где было бы видно, товар "LED лампа Е27 А60 11W Евросвет". Так можно будет понять, по каким полям базы можно связать строки и дополнить данные

Надіслати
Поділитися на інших сайтах

В общем ладно... надеюсь разберетесь :)

 

если между товарами из баз test1 и test2 связь по полю product_id

Spoiler

UPDATE test2.product_description pd2, test1.product_description pd1
SET pd2.mini_description = pd1.mini_description
WHERE pd2.product_id = pd1.product_id;

 

если между товарами из баз test1 и test2 связь по полю name

Spoiler

UPDATE test2.product_description pd2, test1.product_description pd1
SET pd2.mini_description = pd1.mini_description
WHERE pd2.name = pd1.name;

 

рекомендую предварительно проверить результат работы скрипта на одном товаре, ради спокойствия. Для этого в запросе четко укажите product_id товара

Spoiler

UPDATE test2.product_description pd2, test1.product_description pd1
SET pd2.mini_description = pd1.mini_description
WHERE pd2.product_id = pd1.product_id AND pd2.product_id = 42;

 

Змінено користувачем 100napb
  • +1 1
Надіслати
Поділитися на інших сайтах

1 час назад, 100napb сказал:

В общем ладно... надеюсь разберетесь

 

если между товарами из баз test1 и test2 связь по полю product_id

  Скрыть контент

UPDATE test2.product_description pd2, test1.product_description pd1
SET pd2.mini_description = pd1.mini_description
WHERE pd2.product_id = pd1.product_id;

 

если между товарами из баз test1 и test2 связь по полю name

  Скрыть контент

UPDATE test2.product_description pd2, test1.product_description pd1
SET pd2.mini_description = pd1.mini_description
WHERE pd2.name = pd1.name;

 

рекомендую предварительно проверить результат работы скрипта на одном товаре, ради спокойствия. Для этого в запросе четко укажите product_id товара

  Скрыть контент

UPDATE test2.product_description pd2, test1.product_description pd1
SET pd2.mini_description = pd1.mini_description
WHERE pd2.product_id = pd1.product_id AND pd2.product_id = 42;

 

БОльшое спасибо,  буду пробовать

Надіслати
Поділитися на інших сайтах


11 hours ago, sasha12345 said:

БОльшое спасибо,  буду пробовать

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

Змінено користувачем 100napb
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.