从内部联接结果中删除单个表中的数据

时间:2016-09-21 02:40:35

标签: mysql

我在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'
            )
    );

非常感谢任何帮助。

问候。

2 个答案:

答案 0 :(得分:0)

要从联接结果中删除borrowing_mat_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_datamaterial_tools_master_data表中的数据,

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'
    )

请参阅Delete with join (single table, multiple tables)

答案 1 :(得分:0)

如果要从表名 material_tools_master_data中删除表单名称 borrowing_mat_master_data 的整个记录​​,并且只删除 material_tools_group 使用以下查询我希望它能为您提供帮助。

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'
    )
相关问题