select t1.columnFK from table1 t1, table2 t2 where t1.columnFK=t1.columnpk AND t2.somecolumn='value1'
select t2.columnPK from table2 t2 where t2.somecolumn='value2'
두 번째 값의 첫 번째 select 문에서 모든 값을 업데이트해야합니다.부모 테이블의 FK 열을 기준으로 하위 테이블의 PK를 업데이트하십시오.
다음UPDATE table1
SET table1.columnFK = table2.columnPK
From tabel1 t1, table2 t2
Where t1.columnfk=t2.columnpk AND somevalue='value2'
이 table2.columnpk가 table1.coulmnfk으로 참조되는 관계이다 : 나는이 같은 업데이트 쿼리를 작성했습니다.
table1.hbm.xml
<many-to-one
name="table2"
column=""coulmnfk""
class="table2class"
cascade="none"/>
표 2의 관계는 다음과 같이 진행됩니다
<set name="table1" table=""table1"" inverse="true" cascade="none">
<key column=""coulmnFK""/>
<one-to-many class="table1"/>
</set>
확실하지가 어떻게 첫 번째 조건이 포함됩니다.
첫 번째 선택에서 "where t1.columnFK = t1.columnpk"라는 조건을 작성했습니다. 어느 쪽이 잘못 되었습니까? – DevelopmentIsMyPassion
또한 업데이트 진술에서 오류가 있습니까? 나는 당신이 방금 somevalue = 'value2'를 썼기 때문에 당신이 당신의 업데이트 문장에 오류를 가져올 것이라고 생각합니다. 대신 t2.somevalue = 'value2'를 사용해야합니다. 당신은 시도 할 것인가 – DevelopmentIsMyPassion
@Himanshu Yadav 어떤 종류의 관계인가? :) 부모 테이블에 fk로 자식 pk가 있습니까? parent pk를 가리키는 child fk를 업데이트하고 싶지 않으십니까? – bonCodigo