我有3张桌子:

表1:entitylink_test
parent_entity_id | child_entity_id
1 | 11
1 | 12
   2 | 13

表2:vm_host_id
vm_id | host_id
11月11日| 1个
12 | 1个
   14 | 15

表3:标签存储
 实体编号| tag_id
11月11日| 80
12 | 85
   20 | 80

我想从entitylink_test中删除entitylink_test.child_entity_id = vm_host_id.vm_id和tagstorage = 80的行

到目前为止,我已经尝试过

DELETE FROM entitylink_test
WHERE entitylink_test.child_entity_id = vm_host_id.vm_id
AND tagstorage.tag_id = 80;


我试过了

DELETE entitylink_test
FROM entitylink_test INNER JOIN vm_host_id
    ON entitylink_test.child_entity_id = vm_host_id.vm_id
    INNER JOIN tagstorage
      ON entitylink_test.child_entity_id = tagstorage.entity_id
      WHERE tagstorage = 80;


但是,对于第一个代码,我一直收到错误消息“在'where子句中的未知列'vm_host_id.vm_id'”,而对于第二个代码,则出现了错误消息“在'where子句中的未知列'tagstorage'”。还有其他语法建议吗?

任何帮助表示赞赏,
谢谢!

最佳答案

我想你的意思是:

DELETE entitylink_test
FROM entitylink_test INNER JOIN vm_host_id
    ON entitylink_test.child_entity_id = vm_host_id.vm_id
    INNER JOIN tagstorage
      ON entitylink_test.child_entity_id = tagstorage.entity_id
      WHERE tagstorage.tag_id = 80;


您指的是表tagstorage,表没有值,因此您应指定表的哪个属性应具有值80

10-06 03:48