2016-07-16 42 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

相关问题