您能否将2个完全不同的查询结果划分为1个结果

Ken*_*Ken 2 mysql sql inner-join division

我正在尝试将2个完全不同的查询的数值结果相除。

最终结果应为查询1除以查询2

查询1 =

SELECT COUNT(DISTINCT(table1.ID)) AS count_1
FROM table1 
    INNER JOIN op 
    INNER JOIN Org 
    ON table1.EID = op.id 
        AND Op.OrgID = Org.ID
WHERE table1.TitleID = 123
    AND op.BrandID = 1 
    AND op.Start <= NOW() AND op.End >= NOW();
Run Code Online (Sandbox Code Playgroud)

查询2 =

SELECT COUNT(DISTINCT user.id) AS count_2
FROM table1 INNER JOIN user INNER JOIN ur
    ON table1.EID = user.id AND ur.userID = user.id
WHERE 
    user.BrandID = 1 
    AND table1.TitleID = 123
    AND ur.role = 0
    AND user.Inactive = 0;
Run Code Online (Sandbox Code Playgroud)

Cam*_*ron 5

当然!您可以使用子选择来实现此目的,尽管它非常冗长!

SELECT
(
    SELECT COUNT(DISTINCT(table1.ID)) AS count_1
    FROM table1 
        INNER JOIN op 
        INNER JOIN Org 
        ON table1.EID = op.id 
            AND Op.OrgID = Org.ID
    WHERE table1.TitleID = 123
        AND op.BrandID = 1 
        AND op.Start <= NOW() AND op.End >= NOW()
) / (
    SELECT COUNT(DISTINCT user.id) AS count_2
    FROM table1 INNER JOIN user INNER JOIN ur
        ON table1.EID = user.id AND ur.userID = user.id
    WHERE 
        user.BrandID = 1 
        AND table1.TitleID = 123
        AND ur.role = 0
        AND user.Inactive = 0
);
Run Code Online (Sandbox Code Playgroud)

格式化对您来说最不难看。