【发布时间】:2017-01-03 19:15:25
【问题描述】:
SELECT * FROM property
LEFT JOIN installmentagreement
ON property.PId=installmentagreement.PId
LEFT JOIN installments
ON installmentagreement.Id=installments.Id
LEFT JOIN rentagreement
ON property.PId=rentagreement.PId
WHERE property.PId=39
这是按预期工作的 SELECT 查询。我想删除这个 SELECT 查询的结果。我使用了这个查询。
DELETE FROM property( SELECT * FROM property
LEFT JOIN installmentagreement
ON property.PId=installmentagreement.PId
LEFT JOIN installments
ON installmentagreement.Id=installments.Id
LEFT JOIN rentagreement
ON property.PId=rentagreement.PId
WHERE property.PId=39)
还有这个。
DELETE FROM property
LEFT JOIN installmentagreement
ON property.PId=installmentagreement.PId
LEFT JOIN installments
ON installmentagreement.Id=installments.Id
LEFT JOIN rentagreement
ON property.PId=rentagreement.PId
WHERE property.PId=39
但它返回语法错误。我想将 SELECT 查询转换为 DELETE 查询。我使用的数据库是 MySQL。如果有任何其他更好的解决方案,请提出建议。请帮忙!
【问题讨论】:
-
ehrm...这是
LEFT JOIN,所以这不应该只是DELETE FROM property WHERE PId = 39吗? -
使用 cte,也许...假设您尝试从连接中的所有表中删除。
-
不,实际上“InstallmentAgreement”和“RentAgreement”表包含“Property”表的外键。而“Installments”表包含“InstallmentAgreement”表的外键
标签: mysql sql left-join sql-delete