Допустим, я две существующие таблицы, «собаки» и «кошки»:SQL Select Синтаксис обходной
dog_name | owner ---------+------ Sparky | Bob Rover | Bob Snoopy | Chuck Odie | Jon cat_name | owner ---------+------ Garfield | Jon Muffy | Sam Stupid | Bob
Как написать запрос с этим выходом?
owner | num_dogs | num_cats ------+----------+--------- Bob | 2 | 1 Chuck | 1 | 0 Sam | 0 | 1 Jon | 1 | 1
Ответ У меня есть следующий запрос
select owner, sum(num_dogs), sum(num_cats) from
(select owner, 1 as num_dogs, 0 as num_cats from dogs
union
select owner, 0 as num_dogs, 1 as num_cats from cats)
group by owner
, но проблема в том, что SQL не поддерживает "выберите * из (выберите ...)" типа запроса
Вместо этого должно быть имя таблицы после «от».
К сожалению, я не могу позволить себе иметь временную таблицу или таблицу , созданную с предложением «выбрать в». Мне нужно некоторое обходное решение для предлагаемого решения , в котором сформировано вложенное предложение select.
Как вы знаете?
Приветствия
Что это за база данных? –
Мне кажется, что ваши таблицы «собаки» и «кошки» просят объединить в таблицу «домашних животных» с колонками (имя, владелец, тип). то вы должны выбрать владельца, тип, счет (имя) из группы домашних животных владельцем, тип. Я думаю. Не тестировал запрос. – rmeador