2014-02-12 31 views
0

假設我有一個名爲person的對象,它具有(id,name,address,phone_number)作爲它的屬性和一個名爲dog的對象(ID,year_of_birth,breed)。然後我有兩個名爲owner的對象之間的關係。所有者具有以下屬性:(owner_id,dog_id)。在SQL中沒有類似屬性的兩個表之間選擇語句?

在E-R圖中,所有者將是一個連接狗和人的三角形,它們都是矩形的。我正在給這個信息,以便你瞭解這種關係。我的目標是列出誰是業主不是來自西班牙的狗ID。

我已經試過以下等數十種不同的組合是這樣的:

select id from owner where address <> '% Spain%'; 

似乎沒有任何工作。我一直堅持這個好幾個小時。

+0

由於「所有者」允許狗與人之間的多對多關係,您想如何處理情況在一個特定的狗*的一個或多個業主在西班牙,並且同一只狗的一個或多個業主不在西班牙?另外,'person'沒有某種形式的'ID',其值被'owner'中的'owner_id'引用? –

+0

(還有一個跟進 - 這似乎是一個壞主意,有'is_only_owner' - 不能推斷,只有在'擁有'一個特定的'pet_id'行嗎?這意味着如果有多行對於一個特定的'pet_id'和一些或全部有'is_only_owner'設置? –

+0

我的不好,我已經添加了「身份證」的人我只關心每個人,如果他的位置在西班牙 – kiasy

回答

0

這將給dog_id■對於具有至少一個業主所有的狗誰不在西班牙:

select distinct o.dog_id 
from owner o 
    inner join 
    person p 
     on o.owner_id = p.id 
where not p.address like '% Spain%'; 
+0

它給了我下面的錯誤在「在哪裏」(在'w'下面):「錯誤在第1行:ORA-00920:無效的關係運算符任何想法如何解決這個問題? – kiasy