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


Фото
- - - - -

SQL запрос на смену url в категориях


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

#1 artbe

artbe
  • Пользователь
  • 196 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 24.11.2018 - 16:40

Прошу помощи с запросом.

 

Мне надо запросом сменить url категорий на url товаров. (часть url категорий и url товаров совпадают, часть нет). 

 

Например: url категории: audi-q5-s-line, а url товара audi-q5.

 

Сделал вот так: 

 

UPDATE s_categories f1
LEFT OUTER JOIN s_products f2 
    ON f1.url != f2.url
    SET f1.url = f2.url
 

 

Но получился бред, сравнивая по url. Скорее всего надо делать запрос на выбор 3 таблиц, s_categories, s_products, s_products_categories и делать условие по id. 


Изменено: artbe, 24.11.2018 - 16:40


#2 phukortsin

phukortsin
  • Фрилансер
  • 869 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 24.11.2018 - 17:09

Пока бред в постановке задачи...



#3 artbe

artbe
  • Пользователь
  • 196 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 24.11.2018 - 17:56

Пока бред в постановке задачи...

 

У меня в каждой категории по 1 товару



#4 phukortsin

phukortsin
  • Фрилансер
  • 869 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 24.11.2018 - 18:05

Примерно так:

 

update s_categories c set c.url = ( select p.url from s_products p, s_products_categories pc WHERE p.id=pc.product_id and c.id=pc.category_id LIMIT 1)



#5 artbe

artbe
  • Пользователь
  • 196 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 26.11.2018 - 03:18

Примерно так:

 

update s_categories c set c.url = ( select p.url from s_products p, s_products_categories pc WHERE p.id=pc.product_id and c.id=pc.category_id LIMIT 1)

 

Спасибо.

 

Только теперь у родительских категорий - стерлась ссылка. Т.е. url = Null



#6 phukortsin

phukortsin
  • Фрилансер
  • 869 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 26.11.2018 - 09:24

Так и должно быть согласно запросу. Вероятно, потому, что Ваше заявление "У меня в каждой категории по 1 товару" неверное.

 

Потому и говорят часто: правильно поставленный вопрос - половина ответа...



#7 artbe

artbe
  • Пользователь
  • 196 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 26.11.2018 - 09:31

Так и должно быть согласно запросу. Вероятно, потому, что Ваше заявление "У меня в каждой категории по 1 товару" неверное.

 

Потому и говорят часто: правильно поставленный вопрос - половина ответа...

 

нет.

 

Есть родительская категория AUDI.

В ней подкатегории: Audi A1 Hb 5-ти дв. с 10г. / Audi A3 (8V) Sd/Hb c 13г. и т.д.

 

В каждой подкатегории по 1 товару.

Ваш запрос меняет url подкатегориям (это ок) и меняет url родительской категории AUDI на NULL. При этом mysql ругается на то, что url не может быть NULL.



#8 phukortsin

phukortsin
  • Фрилансер
  • 869 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 26.11.2018 - 10:00

нет.

 

Есть родительская категория AUDI.

В ней подкатегории: Audi A1 Hb 5-ти дв. с 10г. / Audi A3 (8V) Sd/Hb c 13г. и т.д.

 

В каждой подкатегории по 1 товару.

Ваш запрос меняет url подкатегориям (это ок) и меняет url родительской категории AUDI на NULL. При этом mysql ругается на то, что url не может быть NULL.

 

Именно не нет, а как раз да.

Вы сказали "У меня в каждой категории по 1 товару".  А теперь посмотрите, сколько у Вас товаров в категории AUDI. Будете настаивать, что именно один?



#9 Noxter

Noxter

    Simpla Developer

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

Опубликовано 26.11.2018 - 10:06

Именно не нет, а как раз да.
Вы сказали "У меня в каждой категории по 1 товару". А теперь посмотрите, сколько у Вас товаров в категории AUDI. Будете настаивать, что именно один?

Корс тебе что в лоб что по лбу.
Человек написал что по одному товару в каждой категории и это так, о количестве товаров в родительской категории речи не было, ты как всегда сам себе палки в колёса вставил.

#10 phukortsin

phukortsin
  • Фрилансер
  • 869 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 26.11.2018 - 10:54

Корс тебе что в лоб что по лбу.
Человек написал что по одному товару в каждой категории и это так, о количестве товаров в родительской категории речи не было, ты как всегда сам себе палки в колёса вставил.

 

Обычно не только программисты, но и обычные люди четко понимают смысл 'в каждой'...



#11 Noxter

Noxter

    Simpla Developer

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

Опубликовано 26.11.2018 - 11:39


Обычно не только программисты, но и обычные люди четко понимают смысл 'в каждой'...


Ты необычный

#12 artbe

artbe
  • Пользователь
  • 196 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 26.11.2018 - 14:23

Всем спасибо, вручную сделал  :)


Изменено: artbe, 26.11.2018 - 14:23





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

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