例如,在我的桌子上
CountyID,County 和 CityID 在县表和城市表中我有表,例如
城市 ID 和城市
如何创建一个从县表中提取县并根据县表中的 cityid 拉出城市的报告。
谢谢
由于这是一个相当基本的问题,我会给你一个基本的答案,而不是为你做的代码。
如果表具有相互“匹配”的列,您可以将它们连接在一起以了解它们的共同点,并几乎像查询一张表一样查询结果。
根据您的需要,还有不同类型的连接 - 例如,您要连接在一起的一个表中的某些行可能没有对应的匹配项。
如果您确定一个城市肯定会有相应的县,请尝试在其匹配列 CityID 上将两个表内部连接并查询结果。
两个表之间明显的共同链接是 CityID,因此您将加入其中。我认为您的数据组织错误,我会将 CountryID 放在 City 表中,而不是将 CityID 放在 country 表中。然后,根据选择的 CountryID,您可以根据它限制对 City 表的查询。
按照 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 是最常见的。内部手段必须在两个表中匹配。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
从这些示例中,您应该能够轻松地将表格及其相互关系合并到结果中......