내부 조인을 사용하여 다른 테이블을 업데이트할 수 있습니다. 두 개의 테이블을 생성해 보겠습니다.
표 만들기
mysql> CREATE table tblFirst -> ( -> id int, -> name varchar(100) -> );쿼리 OK, 영향을 받는 행 0개(0.48초)
기록 삽입
mysql> INSERT into tblFirst values(1,'John');쿼리 OK, 1행 영향(0.17초)mysql> INSERT into tblFirst values(2,'Bob');Query OK, 1행 영향(0.26초) )mysql> INSERT into tblFirst values(3,'David');쿼리 OK, 1행 영향(0.20초)
모든 레코드 표시
mysql> tblFirst에서 * SELECT;
다음은 출력입니다.
+------+-------+| 아이디 | 이름 |+------+-------+| 1 | 존 || 2 | 밥 || 3 | David |+-----+-------+세트의 행 3개(0.00초)
두 번째 테이블 생성
mysql> CREATE table UpdTable -> ( -> IncId int auto_increment, -> 기본 키(IncId), -> id int, -> name varchar(100) -> );Query OK, 영향을 받는 행 0개(0.57초) )
기록 삽입
mysql> INSERT into UpdTable(id,name) values(1,'Taylor');Query OK, 1행 영향(0.12초)mysql> INSERT into UpdTable(id,name) values(2,'jason');Query OK, 1행 영향(0.24초)mysql> INSERT into UpdTable(id,name) values(3,'carol');Query OK, 1행 영향(0.14초)mysql> INSERT into UpdTable(id,name) values(4,'john');쿼리 OK, 영향을 받는 행 1개(0.16초)
모든 레코드 표시
mysql> SELECT * from UpdTable;
다음은 출력입니다.
<미리>mysql> SELECT *UpdTable에서;+------+------+--------+| IncId | 아이디 | 이름 |+-------+------+--------+| 1 | 1 | 테일러 || 2 | 2 | 제이슨 || 3 | 3 | 캐롤 || 4 | 4 | john |+-------+------+--------+4행 세트(0.00초)위의 출력을 보면 성이 첫 번째 테이블 레코드와 일치합니다. 이제 UPDATE −
에 대한 쿼리를 작성하겠습니다.mysql> UPDATE UpdTable -> 내부 조인 tblFirst ON (UpdTable.name =tblFirst.name) -> SET UpdTable.id =tblFirst.id;쿼리 OK, 1행 영향(0.19초)행 일치:1 변경:1 경고:0
마지막 기록을 다음과 같이 업데이트했습니다 -
쿼리는
mysql> SELECT * from UpdTable;
다음은 출력입니다.
+-------+------+--------+| IncId | 아이디 | 이름 |+-------+------+--------+| 1 | 1 | 테일러 || 2 | 2 | 제이슨 || 3 | 3 | 캐롤 || 4 | 1 | john |+-------+------+--------+4행 세트(0.00초)
샘플 출력을 보십시오. id가 업데이트되어 4였는데 지금은 1입니다.