테스트 사이트 - 개발 중인 베타 버전입니다

데이터베이스의 2개의 테이블에서 첫번째 테이블 참고하여 두번째 테이블의 값을 넣는 방법 채택완료

qoqofh 2년 전 조회 1,615

데이터베이스의 테이블이 data1과 data2가 있을 경우, 홈페이지 상에서 문의를 진행하게 되면,

data1과 data2에 같이 데이터가 쌓이도록 진행하고 있습니다.

 

여기에서 data1에 필드 save를 추가하고, data2에 필드 cont를 추가하여 data1의 save필드에

"확인","미확인"이 찍히도록 구현하였는데, data1에서 확인일 경우 data2의 cont에 "수립"이찍히고 미확인일 경우, "요망"이라고 찍히도록 sql UPDATE문을 구현하고 싶은데, 참고할 자료가 있을까요?

 

data1의 테이블

number name memo save
1 일길동 1구역 미확인
2 이길동 2구역 확인
3 삼길동 3구역 확인
4 사길동 4구역 확인
5 오길동 5구역 미확인

 

 

data2의 테이블

number name memo cont
1 일길동 1구역  
2 이길동 2구역  
3 삼길동 3구역  
4 사길동 4구역  
5 오길동 5구역  

 

 

</p>

<p>$sql = "

        UPDATE

            database.data2

        SET

            cont = '수립'

        WHERE

            number = '2'

        ";</p>

<p>

 

이런식으로 data2의 number가 2인 데이터의 cont값을 "수립"으로 강제로 바꾸는건 알겠는데, 위 질문처럼 두개의 테이블에서 number가 같은 데이터를 기준으로 바뀌는 방법을 확인하고 싶습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
플라이
2년 전

UPDATE [테이블명1] A INNER JOIN [테이블명2] B ON A.[조인할 컬럼명] = B.[조인할 컬럼명] SET [변경할 컬럼명] = 변경할값 ( WHERE 절 ) 위를 참고하셔서 적용하시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

q
qoqofh
2년 전
ON절에서 A.number = B.number 를 했을 경우,

WHERE절에서는
A.save = "확인" 이렇게 들어가면 맞을까요? WHERE이 좀 헷갈리네요...ㅎ

위질문에 맞게 진행할 경우,

[code]
UPDATE
data1 A INNER JOIN data2 B
ON
A.number = B.number
SET
B.cont = '수립'
WHERE
A.save = '확인'
[/code]
이렇게가 맞을지 하네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

data1의 테이블을 이렇게 만들면 어떨까요?

number name memo save cont
1 일길동 1구역 미확인  
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

q
qoqofh
2년 전
그렇게 진행하면 편리하겠지만, 현재 테이블로직이 분할되어있어서 나중에 고도화작업 진행할때는 합치겠지만, 현재로써는 테이블을 2개로 진행해야해서요 ㅠㅠ ㅎㅎ
엑스엠엘
2년 전
name, memo를 이중으로 저장할 필요는 없는 듯해서요.

댓글을 작성하려면 로그인이 필요합니다.

플라이
2년 전

네 number가 동일하면 이렇게 하시면 되십니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인