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

두 MySQL 테이블의 데이터를 어떻게 비교할 수 있습니까?

<시간/>

때로는 특히 데이터가 마이그레이션되는 경우 두 테이블에서 일치하지 않는 데이터를 식별해야 합니다. 테이블을 비교하여 수행할 수 있습니다. 'students'와 'student1'이라는 두 개의 테이블이 있는 아래의 예를 고려하십시오.

mysql> Select * from students;
+--------+--------+----------+
| RollNo | Name   | Subject  |
+--------+--------+----------+
|    100 | Gaurav | Computer |
|    101 | Raman  | History  |
|    102 | Somil  | Computer |
+--------+--------+----------+
3 rows in set (0.00 sec)

mysql> select * from student1;
+--------+--------+----------+
| RollNo | Name | Subject |
+--------+--------+----------+
|    100 | Gaurav | Computer |
|    101 | Raman  | History  |
|    102 | Somil  | Computer |
|    103 | Rahul  | DBMS     |
|    104 | Aarav  | History  |
+--------+--------+----------+
5 rows in set (0.00 sec)

이제 아래 쿼리를 사용하여 이러한 테이블을 비교하고 일치하지 않는 행을 결과 집합으로 가져올 수 있습니다.

mysql> Select RollNo,Name,Subject from(select RollNo,Name,Subject from students union all select RollNo,Name,Subject from Student1)as std GROUP BY RollNo,Name,Subject HAVING Count(*) = 1 ORDER BY RollNo;
+--------+-------+---------+
| RollNo | Name  | Subject |
+--------+-------+---------+
|    103 | Rahul | DBMS    |
|    104 | Aarav | History |
+--------+-------+---------+
1 rows in set (0.02 sec)