在单个查询中查找各种表中的总记录

nit*_*ade 6 mysql sql union select count

目前我正在使用此查询,是否有任何替代此查询,这将更快地工作.

SELECT 
    SUM(result1),
    SUM(result2),
    SUM(result3)
FROM (
    (
        SELECT 
            0 as result1,0 as result2,COUNT(*) as result3
        FROM 
            table1
    )
    UNION
    (
        SELECT 
            count(*) as result1,0 as result2,0 as result3
        FROM 
         table2
    )
    UNION
    (
        SELECT 
            0 as result1,count(*) as result2,0 as result3
        FROM 
            table3
    )
    ) as allresult
Run Code Online (Sandbox Code Playgroud)

Sah*_*hah 3

上述查询的替代解决方案如下:

SELECT (SELECT COUNT(1) FROM table2) AS result1, 
       (SELECT COUNT(1) FROM table3) AS result2, 
       (SELECT COUNT(1) FROM table1) AS result3;
Run Code Online (Sandbox Code Playgroud)