此时此刻我是否有一个表格,我需要从中删除数据。在我需要删除行的表中有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 秒
有人可以帮我正确设置查询吗?
答案 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');