繁体   English   中英

从'table2'中删除,其中column ='value'如果'table1'='value'中的列

[英]Delete from 'table2' where column = 'value' IF column in 'table1' = 'value'

我正在尝试执行MySQL查询以从'table2'中删除行,其中'table1'='value'中的column ='value'IF列

我有2张桌子...

表1称为“帐户”
表2称为“库存物品”

有问题的“帐户”列称为“已禁止”
有问题的“库存物品”列称为“ itemid”

我想从inventoryitems WHERE itemid = 2340000删除...如果accountsbanned的列的值为1

额外的信息:

您可以通过第3个称为characters的表将表accounts加入inventoryitems

accounts具有以下列: id (主键)和banned

characters包含以下列: characteridaccountidaccountid链接到表accounts id )。

inventoryitems有列itemidcharacteridcharacterid链接characteridcharacters

希望这可以帮助。

DELETE FROM inventoryitems WHERE characterid IN (SELECT id from characters WHERE accountid IN (SELECT id from accounts WHERE banned = '1' ) ) AND itemid = '2340000';

以下查询使用INNER JOIN从表inventoryitems删除一行:

DELETE i FROM inventoryitems i  
INNER JOIN characters c ON i.characterid = c.characterid 
INNER JOIN accounts a ON c.accountid = a.id 
WHERE i.itemid = 2340000 && a.banned = 1;

尝试一下,因为我从您的评论中获悉,可以通过这种方式加入他们。

DELETE FROM inventoryitems WHERE characterid IN
(SELECT characterid from characters WHERE accountid IN
(SELECT id from accounts WHERE banned = 1))
AND itemid = '2340000';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM