2011-02-03 90 views
0

我試圖使麻煩與Oracle SQL查詢

查詢「什麼是生產者 至少2種性能與地區 名不到10」

我做了以下查詢似乎工作:

select Producers.name 
from Producers 
where (
    select count(Properties.prop_id) 
    from Properties 
    where Properties.area < 10 and Properties.owner = Properties.nif 
) >= 2; 

然而,我的講師是不是很高興。他甚至認爲(至少給我的印象是)這種查詢在甲骨文中不會有效。

應該怎麼做這個查詢呢? (我目前沒有辦法與他說話)。

下面是表:

生產者(NIF(PK),姓名,...)

房產(面積,所有者(FK到 製片人),區域,...)

+1

生產者和屬性表之間的關係是什麼? – 2011-02-03 13:54:01

回答

1
select P.name 
from Producers p, Properties pr 
where p.nif = pr.Owner 
AND Properties.area < 10 
GROUP BY Producers.name 
having Count(*) >= 2 
3

having子句通常用於對總數據過濾(如計數,求和,最大值等)。

select 
    producers.name, 
    count(*) 
from 
    producers, 
    property 
where 
    producers.nif = property.owner and 
    property.area < 10 
group by 
    producers.name 
having 
    count(*) >= 2