【发布时间】:2014-11-12 12:07:29
【问题描述】:
DISTINCT 在 DB2 数据库查询中无法正常工作
SELECT
DISTINCT PF1
FROM
(
SELECT
DISTINCT PF1
FROM
RELATIONS
UNION
SELECT
DISTINCT PF2
FROM
RELATIONS
)
WHERE
PF1 NOT IN (
SELECT
DISTINCT NAME
FROM
REFERENCES
WHERE
TYPE = 'F'
);
这个查询给出了重复的结果
C1:PROV
C1:PROV
WK:HEADER
WK:HEADER
WK:HEADER
etc
什么东西/设置是造成这种异常行为的原因??
仅供参考:相同的查询在另一台机器的数据库上给出正确的结果。
已编辑 这是表的结构
CREATE TABLE RELATIONS (
PF1 VARCHAR(54) NOT NULL,
PF1TXT VARCHAR(50),
PF2 VARCHAR(54) NOT NULL,
SEQ DOUBLE NOT NULL,
PF2TXT VARCHAR(50),
UNIQUE (PF1, SEQ, PF2)
);
CREATE TABLE REFERENCES (
NAME1 VARCHAR(54) NOT NULL,
NAMETXT VARCHAR(50) NOT NULL,
NAME VARCHAR(54) NOT NULL,
TYPE VARCHAR(1) NOT NULL,
UNIQUE (NAME1, NAMETXT, NAME, TYPE)
);
【问题讨论】:
-
可以分享一下表格属性吗?
-
你想要什么样的输出?不同值的列表?
-
是的@stormrage,我只想要不重复的独特结果。
-
您的查询没问题。我在mysql上试过,它给出了正确的结果。但我必须将您的 REFERENCES 表重命名为 REFERENCE 因为它在某种程度上是一个关键字,如果我不更改它会返回错误。我不太确定,但请尝试重命名它。
-
没有@stormrage,不需要重命名表名,我已经发布了更改的表/字段名。