我正在使用php作为管理员,我非常感谢任何建议或帮助,我正在尝试根据另一个表中的列删除未使用的地址,如果在其他列值中找不到,也可以删除该地址
我有2张这样的桌子:
tbladdress
id Address
1222 add1
1332 add2
1555 add3
1776 add4
tblcx
name location Status
ana 1222 completed
ema 1332 used
ada 1332 completed
我想从id等于tblcx状态完成的tblcx位置的tbladdress删除行,而如果使用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';
工作正常,但我也想删除在tblcxlocation中找不到的ID
我希望能在一个查询中得到任何建议或帮助
DELETE FROM tbladdress
WHERE NOT EXISTS (
SELECT *
FROM tblcx
WHERE (tbladdress.id != tblcx.location)
);
答案 0 :(得分:1)
您可以使用tree.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
// get the selected item
TreeItem item = (TreeItem) e.item;
if(item != null) {
...
来检查地址EXISTS
中是否存在状态为'used'
的记录。我想所有不存在此类记录的地址都是您要删除的地址。因此,用tblscx
对表达式求反。
NOT
答案 1 :(得分:1)
您可以改用LEFT JOIN
,并检查t2.location
是否为NULL
(即t1.ID
没有匹配的记录):
DELETE t1
FROM tbladdress t1
LEFT JOIN tblcx t2 ON t1.ID = t2.location
WHERE t2.Status = 'Completed' OR t2.location IS NULL