mysql - 能否将2个完全不同的查询结果分成1个结果

标签 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();

查询 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;

最佳答案

当然!您可以使用子选择来实现这一点,尽管它会非常冗长!

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
);

格式化你觉得最不难看的。

关于mysql - 能否将2个完全不同的查询结果分成1个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19103351/

相关文章:

Mysql 结果按 sum() 排序

sql - "Sessioning"事件流

tsql - 我们如何使用旧语法进行 LEFT JOIN?

mysql - 我的 join sql 查询不会带来结果

mysql - 在SQL(ORACLE)中将数据从旧表复制到新表

sql - SQL Server 中的 AVG

mysql - VBS中,使用 'INSERT INTO'返回MySQL查询结果

php - 带有 AND 条件的 LIKE 的 sql 查询以显示值

mysql - 连接 3 个表时获取所有第一个表记录时出现问题

php - 数据未使用php mysql提交到数据库