나는 이것이 의미가 있기를 바랍니다.
두 개의 테이블이 있습니다. 표 2에는 표 1의 ID에 대한 외래 키가 있습니다. 표 1에는 생성 된 날짜를 기반으로 새 데이터가 추가되었습니다. 테이블 2 외래 키를 새로운 ID로 어떻게 갱신 할 수 있습니까?테이블의 외래 키 업데이트
Table 1:
╔═════════════════════════╗
║ id code createdDate ║
╠═════════════════════════╣
║ 1 xxx 05/07/2013 ║
║ 2 xyz 05/07/2013 ║
║ 3 xxx 07/07/2014 ║
╚═════════════════════════╝
표 2 :
╔════════════════════════════════╗
║ id codeId description ║
╠════════════════════════════════╣
║ 1 1 xxx description ║
║ 2 2 xyz description ║
╚════════════════════════════════╝
나는 역사의 목적을 위해 표 1의 이전 항목을 삭제할 수 없습니다 3과 1로 표 2 codeId을 업데이트해야합니다.
외래 키를 사용할 수 없으며 하위 쿼리의 여러 열을 반환하는 쿼리를 만들었습니다. 이 같은
UPDATE TABLE2
SET CODEID = (SELECT ID
FROM TABLE1
WHERE CODE = (SELECT T.CODE
FROM TABLE2
INNER JOIN (SELECT CODE,
MAX(CREATEDDATE) AS
maxDate
FROM TABLE1
GROUP BY CODE) tm
ON T.CODE = tm.CODE
AND T.CREATEDDATE = tm.MAXDATE
))
여기서 질문을 식별 할 수 없습니다. 당신이 성취하고자하는 것은 무엇이며 어떤 오류가 있습니까? – paqogomez
테이블 1과 테이블 2는 어떻게 링크되어 있습니까? 업데이트하고자하는 외래 키 이외의 다른 필드가없는 것으로 보입니다 (표 2에는 SQL이 암시하는'code' 필드가 없습니다). –
테이블 1 ID 열의 ID 열이 있습니까? –