where accountnum in (select accountnum from gmgh where subsidiaryid=1);这个条件永远是真的呀。 相当于 Delete from country_Business_servicecode where 1=1 不删才奇怪呢。
14:09:11 SQL> select accountnum from gmgh where subsidiaryid=1; select accountnum from gmgh where subsidiaryid=1 * ERROR 位于第 1 行: ORA-00904: invalid column name 已用时间: 00: 00: 00.00 15:02:04 SQL> 报错的呀,怎么会是永真的呢?
我个人认为 : where accountnum in (select accountnum from gmgh where subsidiaryid=1);中 accountnum 相当于常量, 第二个accoutnum 也就是个常量了。 那上面的Delete 执行,一行的做时,这个accoutnum 就是取出来的值了,假如是 5 那上面的Delete 相当于 : delete from country_bussiness_serverice where 5 in (select 5 from gmgh)select 5 from gmgh 得到的结果肯定有 5 了, 只要 ghgh 不为空。 哈哈, 所以说永真!!!哥们是不是这样?
相当于 Delete from country_Business_servicecode where 1=1
不删才奇怪呢。
select accountnum from gmgh where subsidiaryid=1
*
ERROR 位于第 1 行:
ORA-00904: invalid column name
已用时间: 00: 00: 00.00
15:02:04 SQL>
报错的呀,怎么会是永真的呢?
where accountnum in (select accountnum from gmgh where subsidiaryid=1);中
accountnum 相当于常量, 第二个accoutnum 也就是个常量了。
那上面的Delete 执行,一行的做时,这个accoutnum 就是取出来的值了,假如是 5
那上面的Delete 相当于 :
delete from country_bussiness_serverice where 5 in (select 5 from gmgh)select 5 from gmgh 得到的结果肯定有 5 了, 只要 ghgh 不为空。
哈哈, 所以说永真!!!哥们是不是这样?
名称
-----------------------------------------------
EXCHANGENO
HUNDRUD
SERVICEID
ACCOUNTNUM 表country_business_servicecode中有accountnum这个字段啊,而且
每行的值都不同的,怎么会相当于常量了呢?