MySQL delete with nested select query

后端 未结 2 1669
情话喂你
情话喂你 2021-02-20 02:37

I have the following MySQL query:

DELETE FROM catalogue 
WHERE catalogue_id IN (
  SELECT catalogue_id 
  FROM catalogue 
  WHERE (
    product_id = (SELECT prod         


        
2条回答
  •  旧时难觅i
    2021-02-20 02:39

    Or you can use temporary table:

      CREATE TEMPORARY TABLE t AS
      SELECT catalogue_id 
      FROM catalogue 
      WHERE (
        product_id = (SELECT product_id FROM catalogue WHERE catalogue_id = '2290') 
        AND length_id = (SELECT length_id FROM catalogue WHERE catalogue_id = '2290') 
        AND gauge_id = (SELECT gauge_id FROM catalogue WHERE catalogue_id = '2290')
      );
    
      DELETE FROM catalogue WHERE catalogue_id IN (SELECT catalogue_id FROM t);
    

    With your query you got You can't specify target table 'catalogue' for update in FROM clause because you can't make select and update on the same table in one query.

提交回复
热议问题