我有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
。