-1

我正在尝试使用 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其中 ELEMENTS.TAXONOMY_ID = TAXONOMIES.RID 和 =
ELEMENTS.ELEMENT_SCHEMA AND ELEMENTS.DATA_TYPE_ID = DATA_TYPES.RID 和 ELEMENTS.SUBSTITUTION_GROUP_ID = 0


最后一行是实际的过滤条件。

这是一个示例结果: 在此处输入图像描述

应该只有一个结果(项目的 RID 为 0)。但它为替换组表中的每个结果重复一个记录的副本(有 4 个)。

这是我的数据库架构供参考。线条表示表格之间的关系,圆圈表示我想要的值: 在此处输入图像描述

4

1 回答 1

2

您忘记在查询ELEMENTS之间加入。SUBSTITUTION_GROUPS

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 AND ELEMENTS.ELEMENT_SCHEMA_ID = SCHEMAS.RID
AND ELEMENTS.DATA_TYPE_ID = DATA_TYPES.RID
AND ELEMENTS.SUBSTITUTION_GROUP_ID = SUBSTITUTION_GROUPS.RID
AND ELEMENTS.SUBSTITUTION_GROUP_ID = 0
于 2013-03-11T18:39:59.537 回答