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

Một truy vấn duy nhất để lấy tổng số từ các bảng khác nhau trong MySQL?

Để nhận tổng số từ các bảng khác nhau, hãy sử dụng UNION ALL. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1
-> (
-> Id int,
-> Name varchar(30)
-> );
Query OK, 0 rows affected (1.55 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1 values(10,'Chris Brown');
Query OK, 1 row affected (0.83 sec)
mysql> insert into DemoTable1 values(20,'David Miller');
Query OK, 1 row affected (0.50 sec)
mysql> insert into DemoTable1 values(30,'John Adam');
Query OK, 1 row affected (0.83 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable1;

Đầu ra

+------+--------------+
| Id   | Name         |
+------+--------------+
| 10   | Chris Brown  |
| 20   | David Miller |
| 30   | John Adam    |
+------+--------------+
3 rows in set (0.00 sec)

Sau đây là truy vấn để tạo bảng thứ hai -

mysql> create table DemoTable2
-> (
-> Amount int
-> );
Query OK, 0 rows affected (1.17 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable2 values(100);
Query OK, 1 row affected (0.30 sec)
mysql> insert into DemoTable2 values(200);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable2 values(300);
Query OK, 1 row affected (0.54 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable2;

Đầu ra

+--------+
| Amount |
+--------+
| 100    |
| 200    |
| 300    |
+--------+
3 rows in set (0.00 sec)

Đây là cách nhận tổng số từ các bảng khác nhau trong một truy vấn -

mysql> select sum(AllCount) AS Total_Count
-> from
-> (
-> (select count(*) AS AllCount from DemoTable1)
-> union all
-> (select count(*) AS AllCount from DemoTable2)
-> )t;

Đầu ra

+-------------+
| Total_Count |
+-------------+
| 6           |
+-------------+
1 row in set (0.03 sec)