mysql查多个表数据量

608 阅读1分钟

在使用 MySQL 数据库做项目的过程中,我们时常需要查询多个表的数据量。下面介绍几种不同的方法。

方法1: 使用 UNION ALL 连接多个表

SELECT 'table1' AS source, COUNT(*) AS total FROM table1
UNION ALL
SELECT 'table2' AS source, COUNT(*) AS total FROM table2
UNION ALL
SELECT 'table3' AS source, COUNT(*) AS total FROM table3;

这种方法使用 UNION ALL 语句将多个 SELECT 语句的结果合并在一起,每个 SELECT 语句查询一个表的数据量。

方法2: 使用子查询

SELECT 
(SELECT COUNT(*) FROM table1) AS table1_total, 
(SELECT COUNT(*) FROM table2) AS table2_total, 
(SELECT COUNT(*) FROM table3) AS table3_total;

这种方法使用子查询将多个表的数据量查询出来,每个子查询查询一个表的数据量。

方法3: 使用 LEFT JOIN 连接多个表

SELECT 
COUNT(table1.id) AS table1_total, 
COUNT(table2.id) AS table2_total, 
COUNT(table3.id) AS table3_total
FROM 
table1
LEFT JOIN table2 ON table1.id = table2.table1_id
LEFT JOIN table3 ON table1.id = table3.table1_id;

这种方法使用 LEFT JOIN 连接多个表,每个表使用 COUNT 函数统计记录数。如果表之间有外键关联,可以按照外键关联进行连接。

以上三种方法各有优劣,具体使用时可以根据需求选择最适合的。

文章参考:www.yzktw.com.cn/post/101086…