2016-09-21 14 views
0

私はこのクエリをmysqlに持っています。内部結合結果から単一のテーブルからデータを削除

SELECT 
    a.*, b.material_tools_group 
FROM 
    borrowing_mat_master_data AS a 
INNER JOIN material_tools_master_data AS b ON a.tools_code = b.material_code 
WHERE 
    material_tools_group IN (
     'Consumable', 
     'Material' 
    ) 
ORDER BY 
    `a`.`tools_code` ASC 

上記のクエリから結果を削除するには、以下のクエリを試してみましたが、動作しません。

DELETE 
FROM 
    borrowing_mat_master_data 
WHERE 
    tools_code IN (
     SELECT 
      a.*, b.material_tools_group 
     FROM 
      borrowing_mat_master_data AS a 
     INNER JOIN material_tools_master_data AS b ON a.tools_code = b.material_code 
     WHERE 
      material_tools_group IN (
       'Consumable', 
       'Material' 
      ) 
    ); 

ご協力いただければ幸いです。

よろしくお願いいたします。接合された結果のうちborrowing_mat_master_datamaterial_tools_master_dataテーブルの両方からデータを削除するために

DELETE a 
FROM 
    borrowing_mat_master_data AS a 
INNER JOIN material_tools_master_data AS b ON a.tools_code = b.material_code 
WHERE 
    material_tools_group IN (
     'Consumable', 
     'Material' 
    ); 

:接合結果のうちborrowing_mat_master_dataテーブルからデータを削除するために

+0

* 'SELECT'の代わりに' DELETE' *を使用する以外は? –

+0

あなたはそれがうまくいかないことをどのように知っていますか? – shmosel

答えて

0

DELETE a,b 
FROM 
    borrowing_mat_master_data AS a 
INNER JOIN material_tools_master_data AS b ON a.tools_code = b.material_code 
WHERE 
    material_tools_group IN (
     'Consumable', 
     'Material' 
    ) 

フォームのテーブル名の全レコードを削除したい場合は

は、私はそれはあなたを助けることを願っていますクエリ次テーブル名からborrowing_mat_master_dataのみmaterial_tools_group列material_tools_master_data使用をDelete with join (single table, multiple tables)

0

を参照してください。

DELETE a FROM borrowing_mat_master_data AS a 
INNER JOIN material_tools_master_data AS b ON a.tools_code = b.material_code 
WHERE 
    b.material_tools_group IN (
     'Consumable', 
     'Material' 
    ) 
+0

Ranaでは、DELETE文は常に**行**を削除します(見つかった場合)。 – Rene

関連する問題