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

Số lượng MySQL (*) từ nhiều bảng?

Để đạt được điều này cho nhiều bảng, hãy sử dụng UNION ALL.

Cú pháp như sau

select sum(variableName.aliasName)
from
   (
   select count(*) as yourAliasName from yourTableName1
   UNION ALL
   select count(*) as yourAliasName from yourTableName2
   ) yourVariableName;

Hãy để chúng tôi thực hiện cú pháp trên. Ở đây, tôi đang sử dụng cơ sở dữ liệu mẫu có nhiều bảng hơn.

Hai bảng chúng tôi đang sử dụng là

  • userdemo
  • wheredemo

Đây là truy vấn để hiển thị tất cả các bản ghi của cả hai bảng. Truy vấn như sau để hiển thị các bản ghi từ bảng ‘userdemo’.

mysql> select *from userdemo;

Sau đây là kết quả

+--------+----------+------------------+
| UserId | UserName | RegisteredCourse |
+--------+----------+------------------+
| 1      | John     | Java             |
| 2      | Larry    | C                |
| 3      | Carol    | C++              |
| 4      | Mike     | C#               |
+--------+----------+------------------+
4 rows in set (0.08 sec)

Truy vấn như sau để hiển thị các bản ghi từ bảng ‘wheredemo’.

mysql> select *from wheredemo;

Sau đây là kết quả

+------+---------+
| Id   | Name    |
+------+---------+
| 101  | Maxwell |
| 110  | David   |
| 1000 | Carol   |
| 1100 | Bob     |
| 115  | Sam     |
+------+---------+
5 rows in set (0.20 sec)

Đây là truy vấn để triển khai count (*) từ cả hai bảng trên

mysql> select sum(tbl.EachTableCount)
   -> from
   -> (
   -> select count(*) as EachTableCount from userdemo
   -> UNION ALL
   -> select count(*) as EachTableCount from wheredemo
   -> )tbl;

Sau đây là kết quả

+-------------------------+
| sum(tbl.EachTableCount) |
+-------------------------+
| 9                       |
+-------------------------+
1 row in set (0.00 sec)