SQL Как удалить данные из таблицы с помощью INNER JOIN

0

Я пытаюсь удалить все записи из таблицы "oc_products", которые не имеют определенного идентификатора категории. Я создал запрос SELECT, который перечисляет эти продукты с помощью INNER JOIN, так как категории находятся в отдельной таблице.

Я не могу понять, как использовать функцию DELETE для удаления показанных записей.

Вот как выглядит мой код:

DELETE oc_product
FROM oc_product
INNER JOIN oc_product_to_category ON oc_product.product_id = oc_product_to_category.product_id
WHERE oc_product_to_category.category_id = 343

На нем отображается ошибка "Неожиданное ключевое слово (рядом с INNER JOIN)".

Теги:
phpmyadmin

1 ответ

1
Лучший ответ

Добавьте. * В p в своей первой строке.

Пытаться:

DELETE p.* FROM oc_product p
INNER JOIN oc_product_to_category pc ON p.product_id = 
    pc.product_id
WHERE pc.category_id = 343
  • 0
    Работает отлично. Не могли бы вы объяснить, что именно означает «. *», И что означают «p» и «pc»? Большое спасибо за помощь.
  • 1
    p и pc являются псевдонимами, поэтому вам не нужно каждый раз использовать полное имя таблицы. p. * просто говорит, что удаляет строки из p, а не из pc.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню