比方说,我有两个现有的表,“狗”和“猫”: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 * FROM(选择...)” 型的查询
相反,“from”后面必须有一个表名。
不幸的是,我不能负担得起临时表或使用“select into”子句创建的表 。我需要针对 建议的解决方案采取一些解决方法,其中以这种方式形成嵌套的select子句。
您的意见是?
干杯
这是什么样的数据库引擎? – 2009-02-24 22:29:35
在我看来,你的“狗”和“猫”表正在乞求与列(名称,所有者,类型)组合成一个“宠物”表。那么你会选择所有者,类型,数量(名称)从宠物组所有者,类型。我认为。没有测试查询。 – rmeador 2009-02-24 23:03:04