Объединение двух операторов SELECT в один результат

0

У меня есть две таблицы в моей БД. В одном я имею почтовые ящики, в другом я храню псевдонимы. Чтобы создать панель инструментов, я бы хотел получить статистические данные.

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 по номеру строки. Это единственный способ решить это?

  • 0
    Почему вы не хотите использовать INNER JOIN ?
Теги:

1 ответ

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;
  • 0
    Спасибо, выглядит для меня как минимум лучше, чем способ с внутренним соединением с номером строки в качестве «ключа».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню