【发布时间】:2016-03-24 01:16:27
【问题描述】:
有两个表(Profile 和 Location)有一个共同的 ID 字段。每个表都驻留在同一服务器上的单独数据库中。我需要显示每个表中的列。 Profile 表有 50 条记录需要与 Location 表中的 50 条匹配记录一起显示。这是我的查询:
SELECT a.id, a.city, b.state FROM profile a JOIN Location b on a.id=b.id
当我运行上述查询时,返回了 50 多条记录。当我从查询中删除 b.state 时,它返回 50 条记录。当我将 b.state 添加到查询中时,有些地方不对劲。需要返回的50个州应该是Profile表中每个城市相关的州,根据两者的共同ID。
个人资料表数据:
列表项
配置文件表数据: id|城市 1|芝加哥 2|迈阿密 3|底特律
状态表数据: id|州|人口 1|伊利诺伊|10MM 2|佛罗里达|20MM 3|密歇根|5MM 4|弗吉尼亚|7MM 5|路易斯安那|3MM
我想根据 ID 显示 Profile 表中的所有内容以及 State 表中的匹配项,以显示 State 和 Population 列。
【问题讨论】:
-
请edit 包含两个表中的样本数据以及您希望从该样本中获得的结果。
-
@sa-meeh 在下面的“答案”中,我根据您在问题中提供的数据提供结果。但显然你正在寻找不同的结果。您能否帮助我们了解您的期望?
-
嗨@Ralph。我想显示两个表中的字段组合。例如,ID、城市和州。如果两个表上的 ID 匹配,则应显示基于匹配 ID 的城市及其相关州匹配。我的查询返回许多结果。我在 Profile 表中只有 50 条记录。查询应该只返回 ID 与 State 表中的 ID 匹配的 50 条记录。
标签: sql-server join sql-server-2012