Автор Тема: Обновление цен  (Прочитано 108 раз)

24 Апрель 2018, 14:20:12
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени стуок!
Помогите разобраться что делаю не так, есть таблица с ценами на торвар и артиклами (от поставщика) у некоторых из товаров в ИМ артиклы пустые некоторые пересекаются с поставщиком суть вопроса запрос

UPDATE ps_product SET ps_product.price=(SELECT postav.price1 FROM postav WHERE ps_product.supplier_reference = postav.art)

позвращает ответ

ERROR 1048 (23000): Column 'price' cannot be null

запрос к обоим таблицам на наличие NULL возвращает пустые результаты
24 Апрель 2018, 15:58:07
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 21412
  • Репутация: +25286/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Условие добавьте WHERE 'price' IS NOT NULL
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
25 Апрель 2018, 09:00:46
Ответ #2
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
ответ такой же, походу подзапрос не срабатывает :-\
25 Апрель 2018, 09:49:43
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 15040
  • Репутация: +14588/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Не во всех базах работают вложенные запросы. Пропробуйте без вложения
update ps_product
left join postav on ps_product.supplier_reference = postav.art
set ps_product.price = postav.price1
25 Апрель 2018, 13:53:44
Ответ #4
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не во всех базах работают вложенные запросы. Пропробуйте без вложения
update ps_product
left join postav on ps_product.supplier_reference = postav.art
set ps_product.price = postav.price1

Так я тоже пробовал, результат аналогичный(( не может быть null.
столбец price1 вообще не может принимать значение null, типы данных в сравниваемых столбцах одинаковые, может я кардинально не правильно что-то делаю, с mysql только знакомлюсь
25 Апрель 2018, 14:08:05
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1138
  • Репутация: +5/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Временную таблицу создайте id_product с ps_product и price с postav. Проверьте чтобы не было NULL и дублей. Обновляйте прайс связывая с этой таблицей по id_product.
03 Май 2018, 16:09:57
Ответ #6
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
все оказалось гораздо проще, c inner join запрос сработал, спасибо за помощь тему можно закрывать