将两个SELECT语句合并为一个结果

时间:2019-03-02 15:21:41

标签: mysql

我的数据库中有两个表。在其中一个中,我有邮箱,在另一个中,我存储了别名。要创建仪表板,我想获取一些统计数据。

SELECT count(*) as postbox, sum(size) as size FROM users where email like '%@rootix.de'

,另一个查询将是:

select count(*) as aliases from aliases where alias like '%@rootix.de'

因此,我希望单行包含邮箱,大小和别名。所以我必须结合两个SELECT语句。

类似

select count(*) as aliases from aliases where alias like '%@rootix.de'

对我不起作用,我收到“使用的SELECT语句具有不同的列数”的错误消息。

我抬起头,但只发现按行号具有INNER JOIN的伪解。这是解决这个问题的唯一方法吗?

1 个答案:

答案 0 :(得分:0)

一种选择,也许有点蛮力,那就是在一个选择中仅使用三个单独的子查询:

SELECT
    (SELECT COUNT(*) FROM users WHERE email LIKE '%@rootix.de') AS postbox,
    (SELECT SUM(size) FROM users WHERE email LIKE '%@rootix.de') AS size,
    (SELECT COUNT(*) AS FROM aliases WHERE alias LIKE '%@rootix.de') AS aliases;