2016-07-16 72 views
-1

我正在用一個給定的數據庫,一個假的模擬器在Mysql上進行任務,真的很不好。我的問題是,我需要一個查詢來獲取客戶國家的數據,但客戶的表只包含一個城市數據。表是:我怎樣才能從這個數據庫中得到一個人的國家?

tbl_Client: 
/ID* 
/Name 
/Birthday 
/ID_City (FK) 

tbl_City: 
/ID_City * 
/vchCityName 
/ID_State (FK) 

tbl_State: 
/ID_State * 
/vchStateName 
/ID_intRegion (FK) 

tbl_Region: 
/ID_Region * 
/vchRegionName 
/ID_Country (FK) 

tbl_Country: 
/ID_Country * 
/vchCountryName 

所以,我的問題是,我怎麼能得到客戶的國家與其他數據進行比較? (最大的問題是將客戶的國籍與他們喜歡的音樂家進行比較,但我似乎無法管理的是客戶端部分)。我正在嘗試一些非常基本的東西,但它不起作用。

(...)tbl_Client CL, tbl_City CT, tbl_State ST, tbl_Region R, tbl_Country C 
WHERE CT.ID_City = ST.ID_City 
AND ST.ID_Region = R.ID_Region 
AND R.ID_Contry = C.ID_Contry 

然後我試着來比較C.ID_Country,和好了,我嘗試了很多的東西,而且還得到了什麼......我真的很感激,如果有人能夠告訴我這一點。

非常感謝大家!

+2

來吧。這是基本的東西。我們不是來做你的功課。 – Strawberry

+0

你不是那麼遙遠,嘗試用適當的連接來替換逗號分隔的連接。 –

+0

@P.Salmon非常感謝!所以它和scaisEdge說的一樣。謝謝你的幫助! – Yeib

回答

0

有了這個,你得到的所有數據相對於

select tbl_Client.*, tbl_City.*, tbl_State.*, tbl_Region.*, tbl_Country.* 
from tbl_Client 
inner join tbl_City on tbl_Client.ID_City = tbl_City.ID_City 
inner join tbl_State on tbl_State.ID_State = tbl_City.ID_State 
INNER join tbl_Region on tbl_Region.ID_Region = tbl_State.ID_Region 
INNER join tbl_Country on tbl_Country.ID_Country =tbl_Region.ID_Country; 

,如果你需要的國家爲客戶ID例如ID = 3

select tbl_Client.* , tbl_Country.* 
from tbl_Client 
inner join tbl_City on tbl_Client.ID_City = tbl_City.ID_City 
inner join tbl_State on tbl_State.ID_State = tbl_City.ID_State 
INNER join tbl_Region on tbl_Region.ID_Region = tbl_State.ID_Region 
INNER join tbl_Country on tbl_Country.ID_Country =tbl_Region.ID_Country 
where tbl_Client.ID = 3; 
+0

我非常感謝您花時間做到這一點,非常感謝@scaisEdge!這件簡單的事情讓我很難過,但現在我一生中不會忘記這一點。謝謝!! – Yeib

相關問題