Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

다른 테이블의 값으로 MySQL 테이블을 업데이트하시겠습니까?

<시간/>

내부 조인을 사용하여 다른 테이블을 업데이트할 수 있습니다. 두 개의 테이블을 생성해 보겠습니다.

표 만들기

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입니다.