Перейти к содержанию
ngix

Удаление дублей по Типу товар1/товар1 ! Помощь

Рекомендуемые сообщения

Каким запросом в базу можно удалить дубли допустим из категории Платья ХЛ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видел такой код

DELETE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15 FROM product t1
LEFT JOIN product_attribute t2 ON(t1.product_id=t2.product_id)
LEFT JOIN product_description t3 ON(t1.product_id=t3.product_id)
LEFT JOIN product_discount t4 ON(t1.product_id=t4.product_id)
LEFT JOIN product_image t5 ON(t1.product_id=t5.product_id)
LEFT JOIN product_option t6 ON(t1.product_id=t6.product_id)
LEFT JOIN product_option_value t7 ON(t1.product_id=t7.product_id)
LEFT JOIN product_related t8 ON(t1.product_id=t8.product_id)
LEFT JOIN product_reward t9 ON(t1.product_id=t9.product_id)
LEFT JOIN product_special t10 ON(t1.product_id=t10.product_id)
LEFT JOIN product_to_category t11 ON(t1.product_id=t11.product_id)
LEFT JOIN product_to_download t12 ON(t1.product_id=t12.product_id)
LEFT JOIN product_to_layout t13 ON(t1.product_id=t13.product_id)
LEFT JOIN product_to_store t14 ON(t1.product_id=t14.product_id)
LEFT JOIN review t15 ON(t1.product_id=t15.product_id)
WHERE t1.product_id
IN(SELECT pd1.product_id
from product_description pd1, product_description pd2
where pd1.name = pd2.name
and pd1.product_id > pd2.product_id)

Но как его адаптировать под себя я не понял. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что неясно?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, chukcha сказал:

а что неясно?
 

Не сильно разбираюсь куда что надо мое вписывать. И будет ли это работать на версии 3.0.2.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по идее - да

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел такое решение как найти в базе дубликаты. Но как сделать так что бы удалить их при этом? Решения пока не нашел.. 

SELECT * FROM `oc_product` WHERE CONCAT( `oc_product`.`model` ) IN ( SELECT CONCAT( `oc_product`.`model` ) AS x FROM `oc_product` GROUP BY x HAVING COUNT( x ) >1 ) LIMIT 0 , 30

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чем вам не нравится запрос из второго поста?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, chukcha сказал:

А чем вам не нравится запрос из второго поста?

Не знаю куда вписывать там то что мне нужно..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, chukcha сказал:

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

 

Нужно банально удалить дубликаты товаров ( одинаковые ) в общем проредить дубликаты новостей по графе model от дубликатов 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никуда вставлять не надо, выполнить запрос в ручную в phpmyadmin, либо mysql-workbench

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, lexxkrt сказал:

никуда вставлять не надо, выполнить запрос в ручную в phpmyadmin, либо mysql-workbench

надо просто правильно написать запрос проверки дублей.

Здесь

SELECT pd1.product_id
from product_description pd1, product_description pd2
where pd1.name = pd2.name
and pd1.product_id > pd2.product_id)

по имени
 а надо по модели

SELECT p1.product_id
from product p1, product p2
where p1.model = p2.model
and pd1.product_id > pd2.product_id)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, chukcha сказал:

надо просто правильно написать запрос проверки дублей.

Здесь


SELECT pd1.product_id
from product_description pd1, product_description pd2
where pd1.name = pd2.name
and pd1.product_id > pd2.product_id)

по имени
 а надо по модели


SELECT p1.product_id
from product p1, product p2
where p1.model = p2.model
and pd1.product_id > pd2.product_id)

 

 

 

Так и не получается. В общем таблица Oc_product  в ней по графе model нужно определить дубликаты а затем дубликаты удалить. Как должен выглядеть код для SQL запроса при таких переменных? Я уже как только не пробовал изменять и эти запросы и другие... в SQL опыта почти ноль.. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас весь код на лице..

От того что я вам напишу готовый код, вам это не поможет..
Нужно не только копипастить, но еще и думать

А подсказать - я подскажу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, chukcha сказал:

У вас весь код на лице..

От того что я вам напишу готовый код, вам это не поможет..
Нужно не только копипастить, но еще и думать

А подсказать - я подскажу.

Так я пробовал. в sql я раньше вообще не работал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что вы пробовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, chukcha сказал:

Что вы пробовали?

SELECT p1.oc_product
from oc_product p1, oc_product p2
where p1.model = p2.model
and pd1.oc_product > pd2.oc_product)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что вы получили в результате?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, chukcha сказал:

И что вы получили в результате?

татический анализ:

Найдено 2 ошибок при анализе.

 

  1. Неожиданный токен. (near ")" at position 119)
  2. Неожиданный токен. (near "" at position 120)

 

SQL запрос: Документация

SELECT p1.oc_product from oc_product p1, oc_product p2 where p1.model = p2.model and pd1.oc_product > pd2.oc_product)

Ответ MySQL: Документация

#1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ')' на строке 4

татический анализ:

Найдено 2 ошибок при анализе.

Неожиданный токен. (near ")" at position 119)
Неожиданный токен. (near "" at position 120)
SQL запрос: Документация

SELECT p1.oc_product from oc_product p1, oc_product p2 where p1.model = p2.model and pd1.oc_product > pd2.oc_product)

Ответ MySQL: Документация

#1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса около ')' на строке 4

Но в этом я не разбираюсь..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:) google translate


 

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

Изучите документацию по используемой версии MySQL на предмет корректного синтаксиса

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, chukcha сказал:

:) google translate


 

 

SELECT p1.model
from oc_product p1, oc_product p2
where p1.model = p2.model
and pd1.oc_product > pd2.oc_product


SQL запрос: Документация


SELECT p1.model
from oc_product p1, oc_product p2
where p1.model = p2.model
and pd1.oc_product > pd2.oc_product LIMIT 0, 25
Ответ MySQL: Документация

#1054 - Неизвестный столбец 'pd1.oc_product' в 'where clause'

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну.. Ё-моЁ

Я вам показал откуда взял код
ну да я не все поменял

Но зачем человеку глаза и голова?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, chukcha сказал:

Ну.. Ё-моЁ

Я вам показал откуда взял код
ну да я не все поменял

Но зачем человеку глаза и голова?

Я просто не совсем понимаю что нужно менять а что нет... Да т.к. я в этой сфере не работал я не понимаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не можешь сам - поручи другому

Я вам посоветовал -, сделайте это руками в админке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.