【发布时间】:2013-03-11 18:36:28
【问题描述】:
我正在尝试使用 SQL 查询创建过滤器,但在将数值链接到其他表时遇到问题。
每次我尝试链接到另一个表时,它都会获取相同的记录并为另一个表中的每个元素重复它。
例如,这里是查询:
SELECT
ELEMENTS.RID,TAXONOMIES.SHORT_DESCRIPTION,[type],ELEMENT_NAME,ELEMENT_ID,SUBSTITUTION_GROUPS.DESCRIPTION,namespace_prefix,datatype_localname
FROM
ELEMENTS,SUBSTITUTION_GROUPS,TAXONOMIES,SCHEMAS,DATA_TYPES
WHERE
ELEMENTS.TAXONOMY_ID = TAXONOMIES.RID 和 ELEMENTS.ELEMENT_SCHEMA_ID = SCHEMAS .RID
AND ELEMENTS.DATA_TYPE_ID = DATA_TYPES.RID
AND ELEMENTS.SUBSTITUTION_GROUP_ID = 0
最后一行是实际的过滤条件。
这是一个示例结果:
应该只有一个结果(项目的 RID 为 0)。但它为替换组表中的每个结果重复一个记录的副本(有 4 个)。
这是我的数据库架构供参考。线条表示表格之间的关系,圆圈表示我想要的值:
【问题讨论】:
-
两件事:1)在你的查询中使用INNER/OUTER JOIN来澄清(至少对你自己来说)你在做什么; 2)即使您从该表中拉出,我也看不到 SUBSTITUTION_GROUPS 的加入。您需要添加它。
标签: sql sql-server database relational-database