Sql 加入我的select语句

Sql 加入我的select语句,sql,oracle,select,join,Sql,Oracle,Select,Join,我的目标是创建一个关于分行城镇管理的物业、物业详细信息以及对这些物业进行的检查次数的视图。我想我已经做出了正确的SELECT查询,但是我在将它们连接在一起时遇到了困难 我使用的桌子是 YR_属性-主键-“propertynum”,外键-branchnum YR_分行-主键-分行 年检查-主键1-propertynum,主键2-日期检查 这就是我所做的 SELECT area, city From YR_branch SELECT propertynum, COUNT (propertynum)

我的目标是创建一个关于分行城镇管理的物业、物业详细信息以及对这些物业进行的检查次数的视图。我想我已经做出了正确的SELECT查询,但是我在将它们连接在一起时遇到了困难

我使用的桌子是

  • YR_属性-主键-“propertynum”,外键-branchnum
  • YR_分行-主键-分行
  • 年检查-主键1-propertynum,主键2-日期检查
  • 这就是我所做的

    SELECT area, city
    From YR_branch
    
    SELECT propertynum, COUNT (propertynum)  FROM yr_inspection
    GROUP BY propertynum
    
    SELECT propertynum, branchnum, area, city, postcode, prop_type, rooms
    FROM YR_property
    

    重申一下,我试图加入SELECT语句。谢谢你对我的帮助

    第一个和第三个查询可以通过简单的联接合并。然后可以使用Subselect合并第三个。像这样的方法应该会奏效:

    SELECT * FROM (
        SELECT propertynum, COUNT (propertynum) 
        FROM yr_inspection GROUP BY propertynum
    ) a,
    (
        SELECT b.area, b.city, p.propertynum, p.branchnum, 
               p.area, p.city, p.postcode, p.prop_type, p.rooms 
        FROM YR_property p, YR_branch b
        WHERE p.branchnum = b.branchnum
    ) b
    where a.propertynum = b.propertynum;
    
    以下是一个解决方案:

    select p.propertynum, p.branchnum, p.area, p.city, p.postcode, p.prop_type, p.rooms,
           b.area, b.city, coalesce(i.NumInspected, 0)
    from yr_property p join
         yr_branch b
         on p.branchnum = b.branchnum left outer join
         (select propertynum, count(*) as NumInspected
          from yr_inspection i
          group by propertynum
         ) i
         on i.propertynum = p.propertynum;
    
    这使用ANSI标准联接语法将表组合在一起。首先在联接之前聚合检查表,以获取属性上的检查次数

    左侧外部联接
    确保包括所有特性,即使没有检查。
    coalesce()
    将这种情况下的检查次数显示为0而不是NULL


    如果您确实需要SQL视图,那么只需将
    创建视图作为
    放在
    选择

    之前。您是否尝试过任何语句,看看是否可以按您的意愿使其工作?在我放入第三个表之前,我尝试过。。。yr_branchnum上的内部连接yr_检查=yr_检查.propertynum;非常感谢。不过上面写着ORA-00918:专栏含糊不清谢谢,非常感谢!