碰到一个怪事了,我有张大表共有 70W条数据,跟另外两从表进行左连接后,用 SELECT COUNT(1) FROM (
SELECT *.* FROM TEST1,TEST2,TEST3 WHERE TEST1.NO = TEST2.NO(+) AND TEST1.NO = TEST3.NO(+));
---真实不是该语句,语句太长不发出来了,但就是这种形式。
查出记录数有 70W 条,但用这语句插入表后就变成 10W多条数据了,找半天还是没找出什么原因,不知各位有没有碰到这种问题?用CREATE TABLE TEST AS SELECT *.* FROM TEST1,TEST2,TEST3 WHERE TEST1.NO = TEST2.NO(+) AND TEST1.NO = TEST3.NO(+);  也是变成 10W多条。同时,同样是上面那条语句,但是在SELECT 语句里面嵌入一个子查询,记录数SELECT COUNT(1) 也马上变成10W多条,一去掉
子查询又变成 70W 条。
子查询形式:
SELECT (SELECT D.A FROM TEST4 D WHERE TEST1.CD = D.CD)*.* FROM TEST1,TEST2,TEST3 WHERE TEST1.NO = TEST2.NO(+) AND TEST1.NO = TEST3.NO(+);