在我的表我有例如基于另一个表中的列从一个表中获取数据的SQL查询?
CountyID,县和CityID在县表和城市表我有表我有例如
城市标识和城市
如何创建一份报告将县从县表中拉出来,并根据县里的cityid拉市。
感谢
在我的表我有例如基于另一个表中的列从一个表中获取数据的SQL查询?
CountyID,县和CityID在县表和城市表我有表我有例如
城市标识和城市
如何创建一份报告将县从县表中拉出来,并根据县里的cityid拉市。
感谢
由于这是一个相当基本的问题,我给你一个基本答案,而不是代码来为你做它。
如果表格中的列彼此“匹配”,则可以将它们按照它们的共同点加入到一起,然后查询结果,就好像它是一个表一样。
根据您的要求,还有不同类型的连接 - 例如,可能是您加入的其中一个表中的某些行没有相应的匹配项。
如果您确定某个城市肯定会有相应的县,请尝试内部连接其匹配列CityID上的两个表并查询结果。
这两个表之间明显的共同联系是CityID,所以你会加入。我认为你的数据组织错了,但我会把CountryID放在City表中,而不是CountryID中的CityID。然后,根据所选的国家/地区代码,您可以基于此限制您对城市表格的查询。
县,而不是国家。但是正确的。 – 2012-04-16 20:30:56
在Bridge的回答中,您显然不熟悉SQL,并且有许多地方可以挖掘如何编写它们。然而,你应该训练自己最基本的基础知识总是应用表名或别名来防止歧义,并尽量避免使用可能被认为是语言保留字的列名......它们总是看起来像咬人一样。
也就是说,最基本的查询是
select
T1.field1,
T1.field2,
etc with more fields you want
from
FirstTable as T1
where
(some conditional criteria)
order by
(some column or columns)
现在,随着多个表打交道时,你需要的JOIN ...通常INNER或LEFT是最常见的。内部装置必须在两个表中匹配。左就是必须在表左侧不管比赛的权利...恩匹配:
select
T1.Field1,
T2.SomeField,
T3.MaybeExistsField
from
SomeTable T1
Join SecondTable T2
on T1.SomeKey = T2.MatchingColumnInSecondTable
LEFT JOIN ThirdTable T3
on T1.AnotherKey = T3.ColumnThatMayHaveTheMatchingKey
order by
T2.SomeField DESC,
T1.Field1
从这些例子中,你应该能够轻松地将您的表和它们之间的关系,以相互到您的结果...
这是sql 101 - 你有什么试过? – 2012-04-16 20:22:58
看到这个:http://tinyurl.com/d3o2yb4和这个:http://tinyurl.com/jo3lz – 2012-04-16 22:04:58