Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào chúng ta có thể so sánh dữ liệu trong hai bảng MySQL?

Đôi khi chúng ta cần xác định dữ liệu chưa khớp từ hai bảng, đặc biệt là trong trường hợp dữ liệu được di chuyển. Nó có thể được thực hiện bằng cách so sánh các bảng. Hãy xem xét ví dụ dưới đây, trong đó chúng ta có hai bảng có tên là "sinh viên" và "sinh viên1".

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)

Bây giờ, với sự trợ giúp của truy vấn bên dưới, chúng tôi có thể so sánh các bảng này và lấy các hàng chưa khớp làm tập kết quả.

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)