1
我使用此select語句查找了要刪除的重複行。雖然我只是改變了SELECT TO DELETE,它會刪除行,但它沒有。使用InnerJoin Firebird刪除聲明
這是select語句:
select * FROM MYCARD T1
INNER JOIN(SELECT IDCARD, YEAR, MONEY FROM MYCARD GROUP BY IDCARD, YEAR, MONEY HAVING COUNT(IDCARD) > 1) T2 ON
T1.IDCARD = T2.IDCARD AND T1.YEAR=T2.YEAR
AND T1.MONEY = T2.MONEY
WHERE T1.IDMONEY = 5 AND IDCARD=80
AND ID not in (select min(ID)
from MYCARD
WHERE IDMONEY=5
AND IDCARD=80
group by IDCARD, YEAR);
,我想用這個刪除:
DELETE FROM MYCARD T1
INNER JOIN(SELECT IDCARD, YEAR, MONEY FROM MYCARD GROUP BY IDCARD, YEAR, MONEY HAVING COUNT(IDCARD) > 1) T2 ON
T1.IDCARD = T2.IDCARD AND T1.YEAR=T2.YEAR
AND T1.MONEY = T2.MONEY
WHERE T1.IDMONEY = 5 AND IDCARD=80
AND ID not in (select min(ID)
from MYCARD
WHERE IDMONEY=5
AND IDCARD=80
group by IDCARD, YEAR);
但它不工作。有任何想法嗎?
我也試過這樣:
DELETE FROM MYCARD
WHERE EXISTS (select * FROM MYCARD T1
INNER JOIN(SELECT IDCARD, YEAR, MONEY FROM MYCARD GROUP BY IDCARD, YEAR, MONEY HAVING COUNT(IDCARD) > 1) T2 ON
T1.IDCARD = T2.IDCARD AND T1.YEAR=T2.YEAR
AND T1.MONEY = T2.MONEY
WHERE T1.IDMONEY = 5 AND IDCARD=80
AND ID not in (select min(ID)
from MYCARD
WHERE IDMONEY=5
AND IDCARD=80
group by IDCARD, YEAR))
但是,當我把我的select語句存在的地方,它仍然不起作用 – ktos1234
@ ktos1234請用你試過的語句更新你的問題。 –
我修改了我的帖子 – ktos1234