SQL (Oracle) 嵌套选择参数

标签: sql Oracle
发布时间: 2017/4/15 18:20:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想做一些事情一样︰

select fred.name
  , fred.emp_num
from fred
  , joe
  , (select * from
      (select yr_bonus
        , 1 grade
      from mark 
      where mark.department = fred.department)
      union
      (select
        0 yr_bonus
        , 2 grade
      from dual)
    ) pay
where fred.division = joe.division
and fred.grade = pay.grade;

这并不工作。我似乎无法弄清楚如何绑 fred.department mark.department 从 2 级深的选择。我是如何实现这一点的?

解决方法 1:

因为在 FROM 子句中不能访问另一个表,您必须使用任一联接或联接表在哪里子句。此外,查询起来不对劲,描述一下你想要做什么吗?

如果我理解正确的话,可以像这样改写您的查询︰

select fred.name
  , fred.emp_num
from fred
  , joe
where fred.division = joe.division
and ((fred.grade = 1 and fred.department in (select department from mark) 
or (fred.grade = 2))
赞助商