2012-04-23 57 views
3

兩個表的數據我有3個表檢索與間接的關係(從另一個表)

Division 

id name 
1  A 
2  B 


Region 

Id  name  Divsion_id 
01  Rim   A 


Territory 

Id  name  region_id 

001  a    01 
002  b    01 
003  c    01 

現在我想編寫一個查詢這樣的方式,用戶將選擇部門及其各自的領土應該得到顯示。

我怎麼能寫這樣的查詢,如

有記名錶決和地區之間沒有直接的關係?

+0

Are you sure devision_id is A in region table and not 1? – 2012-04-23 13:20:53

回答

4
select t.* from territory t 
inner join region r on r.id = t.region_id 
inner join devision d on d.name = r.division_id 
where d.name = 'A' 
0

另一種方法是使用IN運算符子查詢。內部查詢投影所有具有給定區域ID的區域,外部查詢查找具有選定區域的區域。儘管連接應該比嵌套查詢執行得更好。

select * from territory where region_id in (select region_id from region where devision_id=<division id>) 
+0

請在代碼中添加上下文,以便其他用戶瞭解它是什麼以及它爲什麼在那裏。我知道這對你很明顯,但對其他人來說,你要解決的問題並不明顯。 – 2017-01-29 13:43:56

相關問題