Master2KAZ

[Решено] Удаление записей из oc_product_image, которые имеются в oc_product

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

Master2KAZ    0

Что делаю не так?

DELETE FROM (`oc_product_image` opi LEFT JOIN `oc_product` p ON (opi.`product_id`=p.`product_id`))  WHERE (opi.`image`=p.`image`);

Суть: нужно из oc_product_image удалить картинки, которые есть в oc_product.

Выдает ошибку синтаксиса.

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


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

От секты: 

DELETE
FROM  oc_product_image pi
INNER JOIN  oc_product p ON pi.image = p.image
WHERE pi.product_id = p.product_id

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


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

Ну...

DELETE FROM (`oc_product_image` opi LEFT JOIN `oc_product` p ON (opi.`product_id`=p.`product_id`))  WHERE (opi.`image`=p.`image`);

почти правильный

 

DELETE FROM `oc_product_image` opi

LEFT JOIN `oc_product` p ON (opi.`product_id`=p.`product_id`)

WHERE opi.`image`=p.`image`;

 

За счет WHERE left join перерождается в Inner Join (или JOIN)

DELETE FROM `oc_product_image` opi
JOIN `oc_product` p ON (opi.`product_id`=p.`product_id`)
WHERE opi.`image`=p.`image`;

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


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

Спасибо всем! Уже решил вопрос другим путем. Но буду знать на будущее!

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


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

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

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

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

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

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

Войти

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

Войти


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

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