我想写一个查询,其中一个表中的列从另一列返回数据。我试图用子查询来做,但没有运气。我宁愿使用子查询,而不是使用“加入”,因为我还是新的SQL/Oracle和可以更好地了解子查询,以找到一个解决办法...如何查询使用子查询的Oracle表
第一个查询是:
SELECT MA_gardenermanager.managerID "senior gardener"
, MA_gardeners.gardenername
, MA_gardenermanager.gardenerID "Manages"
FROM MA_gardenermanager, MA_gardeners
where MA_gardeners.gardenerID = MA_gardenermanager.managerID
order by MA_gardenermanager.managerID
, MA_gardenermanager.gardenerID
;
这将返回以下数据:
senior gardener GARDENERNAME Manages
4 Olivia Brown 1
4 Olivia Brown 5
5 Emily Williams 2
5 Emily Williams 3
第二个查询是:
select MA_gardenermanager.gardenerID
, MA_gardeners.gardenername "Manages"
from MA_gardeners, MA_gardenermanager
where MA_gardeners.gardenerID = MA_gardenermanager.gardenerID
;
这回S中的以下数据:
GARDENERID Manages
1 Oliver Smith
2 Jack Jones
3 Harry Taylor
5 Emily Williams
我试图合并这两个查询以上,产生这样的:
senior gardener GARDENERNAME Manages
4 Olivia Brown Oliver Smith
4 Olivia Brown Emily Williams
5 Emily Williams Jack Jones
5 Emily Williams Harry Taylor
我已经试过,但不断收到ORA-01427:单行子查询返回多个比一行:
SELECT MA_gardenermanager.managerID "senior gardener"
, MA_gardeners.gardenername
, MA_gardenermanager.gardenerID "manages"
, (select MA_gardeners.gardenername
from MA_gardeners, MA_gardenermanager
where MA_gardeners.gardenerID = MA_gardenermanager.gardenerID)
FROM MA_gardenermanager, MA_gardeners
where MA_gardeners.gardenerID = MA_gardenermanager.managerID
;
是否有一种简单的方法,我可以通过将第二个查询作为子查询插入第一个查询来组合这两个查询?
天才!这工作完美。我还没有看过使用别名,所以你的解决方案和建议非常感谢! – 2014-11-02 09:57:38