반응형
동일한 표의 다른 열의 데이터와 일치하도록 열을 업데이트하는 방법
parent_id 행을 갱신하고 parent_id와 동일한 member_id를 가진 대응하는 사용자 이름을 반영하기 위한 쿼리를 실행하려고 합니다.
다음은 db_name.members 테이블을 나타낸 것입니다.parent_ids를 대응하는 사용자 이름으로 변환하고 싶습니다.
+--------+----------+-----------+-----------+
| name | username | member_id | parent_id |
+--------+----------+-----------+-----------+
| Jeff | Jeff | 167 | NULL |
| Asia | Asia | 143 | NULL |
| Bogart | Bogart | 389 | 167 |
| Greg | Greg | 894 | NULL |
| Hatsy | Hatsy | 328 | 167 |
| Super | Super | 721 | NULL |
| Goku | Goku | 534 | 894 |
| Banana | Banana | 520 | NULL |
| Kyle | Kyle | 456 | 520 |
+--------+----------+-----------+-----------+
그 후의 모습:
+--------+----------+-----------+-----------+
| name | username | member_id | parent_id |
+--------+----------+-----------+-----------+
| Jeff | Jeff | 167 | NULL |
| Asia | Asia | 143 | NULL |
| Bogart | Bogart | 389 | Jeff |
| Greg | Greg | 894 | NULL |
| Hatsy | Hatsy | 328 | Jeff |
| Super | Super | 721 | NULL |
| Goku | Goku | 534 | Greg |
| Banana | Banana | 520 | NULL |
| Kyle | Kyle | 456 | Banana |
+--------+----------+-----------+-----------+
현재 (작동하지 않는) 쿼리입니다.
UPDATE members SET parent_id=(SELECT name FROM members WHERE member_id=parent_id);
이 기능을 사용하여UPDATE
와 함께INNER JOIN
:
UPDATE members m1 INNER JOIN members m2 ON m1.parent_id = m2.member_id
SET m1.parent_id = m2.username
다음 경우에 대비해서parent_id
column은 정수/숫자 열입니다.이 열에는 사용자 이름을 설정할 수 없습니다.를 사용할 수 있습니다.SELECT
대신UPDATE
:
SELECT m1.name, m1.username, m1.member_id, m2.username AS parent_username
FROM members m1 LEFT JOIN members m2 ON m1.parent_id = m2.member_id
언급URL : https://stackoverflow.com/questions/59482102/how-to-update-a-column-to-match-data-from-another-column-in-the-same-table
반응형
'source' 카테고리의 다른 글
vue.js 응용 프로그램의 정적 자산에 대한 경로 (0) | 2022.09.04 |
---|---|
Vue 컴포넌트를 외부 프로젝트에 공개하다 (0) | 2022.09.04 |
레코드가 없는 경우 sum -or - 0을 선택하는 방법은 무엇입니까? (0) | 2022.09.04 |
MySQL - 문자열 길이로 데이터를 선택하는 방법 (0) | 2022.09.04 |
제한, Java ssl 디버깅로깅 (0) | 2022.09.04 |