使用来自其他2个表的条目列表从1个表中删除数据

时间:2012-10-08 17:33:06

标签: sql

此时此刻我是否有一个表格,我需要从中删除数据。在我需要删除行的表中有2个连接。其中一个连接是指具有客户名称/子名称的表。 我需要从订单表中的特定子名称中删除这些客户一定数量的产品。要获取我需要删除的产品列表,我需要以它的价格检查第三个表。

下面是我创建的以下查询但是给我一个错误,我并不感到惊讶。

    DELETE FROM `table1`
WHERE `entry` = (SELECT `entry` FROM `table2` WHERE `subname` = 'Buyer')
    AND `item` = (SELECT `entry` FROM `table3` WHERE `Price` != '226' OR '232');

运行此查询让我遇到以下错误..

  

错误代码:1242子查询返回超过1行

     

执行时间:0秒传输时间:0秒总时间:0.044   秒

有人可以帮我正确设置查询吗?

2 个答案:

答案 0 :(得分:1)

您需要使用IN子句而不是相等

如果您仅根据客户名称从表中删除客户记录,则查询将类似于

DELETE FROM `table1` 
WHERE `entry` IN (SELECT `entry` FROM `table2` WHERE `subname` = 'Buyer') 

答案 1 :(得分:0)

您的查询应该是

DELETE FROM `table1`
WHERE `entry` IN (SELECT `entry` FROM `table2` WHERE `subname` = 'Buyer')
    AND `item` IN (SELECT `entry` FROM `table3` WHERE `Price` != '226' OR '232');