我使用php我的管理员我真的很感激任何建议或帮助我试图删除地址,是不是在使用的基础上从另一个表列,也可以删除,如果没有在其他列值中找到
我有两张这样的table:
t包边
id Address
1222 add1
1332 add2
1555 add3
1776 add4
tblcx公司
name location Status
ana 1222 completed
ema 1332 used
ada 1332 completed
我想从tbladdress中删除id等于tblcx location的行,其中tblcx status已完成,而如果使用了tblcx status,则不能执行任何删除操作
期望输出
tbladdress
id Address
1332 add2
id 1332未被删除,因为它仍被另一个客户使用1555和1776被删除,因为它不存在于其他表中1222被删除,因为状态已完成
我正在使用此查询
DELETE t1
FROM tbladdress t1
INNER JOIN tblcx t2
ON t1.ID = t2.location and t2.Status = 'Completed';
这是工作正常,但我还想删除的id是没有找到tblcxlocation
我希望它像在一个查询我真的很感谢任何建议或帮助
DELETE FROM tbladdress
WHERE NOT EXISTS (
SELECT *
FROM tblcx
WHERE (tbladdress.id != tblcx.location)
);
2条答案
按热度按时间h7wcgrx31#
你需要一个
LEFT JOIN
相反,检查t2.location
存在NULL
(即没有匹配的t1.ID
):lztngnrs2#
你可以用
EXISTS
检查状态为的记录'used'
存在于tblscx
找个地址。我想,所有不存在此类记录的地址都是您要删除的地址。所以用NOT
.