@sergeiy_permyakov

Как выполнить DELETE если есть условие для двух таблиц?

MYSQL 8.0
SELECT * 
  FROM osn86_jshopping_products_attr, osn86_jshopping_products_to_categories 
  WHERE osn86_jshopping_products_attr.product_id = osn86_jshopping_products_to_categories.product_id 
    AND osn86_jshopping_products_to_categories.category_id = 83

Как их удалить используя DELETE делит ругается что могу только в одной таблице удалить.
Пробовал вот так
DELETE FROM osn86_jshopping_products_attr 
  WHERE (SELECT * FROM osn86_jshopping_products_attr, osn86_jshopping_products_to_categories 
    WHERE osn86_jshopping_products_attr.product_id = osn86_jshopping_products_to_categories.product_id 
      AND osn86_jshopping_products_to_categories.category_id = 83 )
ошибка
#1241 - Операнд должен содержать 1 колонок
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 2
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
DELETE 
FROM osn86_jshopping_products_attr
WHERE product_id IN (
    SELECT product_id
    FROM osn86_jshopping_products_to_categories
    WHERE category_id = 83
);
Ответ написан
Комментировать
DanArst
@DanArst
Гриффиндор в моде при любой погоде!
DELETE t1.*, t2.*
FROM osn86_jshopping_products_attr t1
INNER JOIN osn86_jshopping_products_to_categories t2
ON t1.product_id = t2.product_id
WHERE t2.category_id = 83
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы