我使用的是Oracle,我有一個查詢:有2子查詢的問題SELECT
SELECT count(*) FROM table1;
會拋出我作爲結果21932
,那麼我以前設置查詢作爲子查詢中的下一個方法:
SELECT count(*) FROM table2 WHERE attr1 IN (SELECT attr1 FROM table1);
這會引起我的結果10489
。所以,我想刪除不在此組內的行,其餘運行DELETE
句話之前,我想檢查行的這個數字是正確的,下一個查詢:
SELECT count(*) FROM table1 WHERE attr1 NOT IN
(SELECT attr1 FROM table2 WHERE attr1 IN (SELECT attr1 FROM table1));
行的數目應該是11443 (total - 10489)
,但聲明拋出我3743
行,爲什麼這是結果?我怎麼能得到我想要刪除的行數?
在此先感謝。
您說得對,'attr1'在這兩個表 –
Hm中都是唯一的,而且mathguy關於NULL的猜測也不適用? 'count(*)','count(attr1)'和'count(distinct attr1)'給每個表相同的數字? –
對不起''attr1'在兩個表中都不是唯一的,只在'table2'中,而不在'table1'中,我可以注意到運行這個語句'count(distinct attr1)'。 –