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

다른 MySQL 테이블의 값을 사용하여 한 MySQL 테이블의 값을 어떻게 업데이트할 수 있습니까?

<시간/>

다른 MySQL 테이블의 값을 사용하여 한 MySQL 테이블의 값을 업데이트하려면 UPDATE 문의 SET 절에서 표현식으로 하위 쿼리를 사용해야 합니다.

예시

이 예에서는 '학생'과 '정보'라는 두 개의 테이블이 있습니다. 'info' 테이블의 'remarks' 열 값을 사용하여 'student' 테이블 'grade' 열의 값을 업데이트합니다.

mysql> select * from student;
+----+---------+-------+
| Id | Name    | grade |
+----+---------+-------+
| 1  | Rahul   | NULL  |
| 2  | Gaurav  | NULL  |
| 3  | Raman   | NULL  |
| 4  | Harshit | NULL  |
| 5  | Aarav   | NULL  |
+----+---------+-------+
5 rows in set (0.01 sec)

mysql> select * from info;
+------+-----------+
| id   | remarks   |
+------+-----------+
| 1    | Good      |
| 2    | Good      |
| 3    | Excellent |
| 4    | Average   |
| 5    | Best      |
+------+-----------+
5 rows in set (0.00 sec)

mysql> UPDATE STUDENT SET grade = (SELECT remarks from info WHERE info.id = student.id) WHERE id > 0;
Query OK, 5 rows affected (0.08 sec)
Rows matched: 5 Changed: 5 Warnings: 0

위의 쿼리는 하위 쿼리의 도움으로 'student' 테이블의 grade 열 값을 업데이트합니다. 다음 MySQL 쿼리에 의해 반환된 결과 집합에서 관찰할 수 있습니다.

mysql> Select * from student;
+----+---------+-----------+
| Id | Name    | grade     |
+----+---------+-----------+
| 1  | Rahul   | Good      |
| 2  | Gaurav  | Good      |
| 3  | Raman   | Excellent |
| 4  | Harshit | Average   |
| 5  | Aarav   | Best      |
+----+---------+-----------+
5 rows in set (0.00 sec)