我的目标是创建一个关于通过分支镇管理的物业的VIEW,物业详情以及为这些物业进行的检查次数。我想我已经做出了正确的SELECT查询,但是我无法将它们连接在一起。
我正在使用的表是
这就是我所管理的......
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语句。感谢您提供的任何帮助!
答案 0 :(得分:1)
第一个和第三个查询可以与简单的JOIN合并。然后,您可以使用子选择合并第三个。这样的事情应该有效:
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;
答案 1 :(得分:1)
这是一个解决方案:
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标准连接语法将表格组合在一起。检查表首先在联接之前汇总,以获得对财产的检查次数。
left outer join
确保包含所有属性,即使没有检查也是如此。 coalesce()
显示在这种情况下的检查次数为0而不是NULL。
如果您真的想要一个SQL视图,那么只需将create view <your view name here> as
放在select
之前。