Вот пример, который показывает, что делать (по крайней мере, я так понял, основываясь на вопросе и комментариях, которые вы разместили).
Сначала тестовый пример:
SQL> create table table1 (id number, criteria varchar2(10));
Table created.
SQL> create table table2 (id number);
Table created.
SQL> insert into table1 (id)
2 select 1 from dual union all
3 select 2 from dual;
2 rows created.
SQL> insert into table2 (id)
2 select 1 from dual;
1 row created.
КакВы можете видеть, что обе таблицы имеют общую ID = 1
, поэтому мы ожидаем, что ее table1.criteria
будет изменено.
Ваш запрос:
SQL> update table1 set
2 criteria = 'M1'
3 where id in (select a.id
4 from table1 a join table2 b on a.id = b.id
5 );
1 row updated.
SQL> -- Result
SQL> select * From table1;
ID CRITERIA
---------- ----------
1 M1
2
В качестве альтернативы:
SQL> update table1 a set
2 a.criteria = 'M2'
3 where exists (select null
4 from table2 b
5 where b.id = a.id
6 );
1 row updated.
SQL> select * From table1;
ID CRITERIA
---------- ----------
1 M2
2
Посмотрите, поможет ли это.