繁体   English   中英

我如何将 sql DISTINCT,UNION 与 where 子句一起使用

[英]how do I use sql DISTINCT,UNION with where clause

各位,

如何将 sql DISTINCT,UNION 与 where 子句一起使用?

“GDN”列在数据库表“GPG”中。

请推荐和解决方案。

谢谢

表格:GPD

PNM
GPPI12301001
GPPI12301002
GPPI82301001
GPPI82301002

表:GPG

全球展示广告网络 PNM
A.04.01.002.001 GPPI12301001
A.04.01.002.001 GPPI12301002
A.04.01.008.001 GPPI82301001
A.04.01.008.001 GPPI82301002

期望的结果

PNM
GPPI12301001
GPPI12301002
 Dim query As String = "SELECT DISTINCT PNM FROM GPD UNION SELECT DISTINCT PNM FROM GPG ORDER BY PNM"

在 where 子句下面我的意思是在 GPG 数据库表中

WHERE GDN = 'A.04.01.002.001'

每个SELECT都有自己的WHERE子句。 UNION的最终结果有一个ORDER BY

SELECT PNM
FROM GPD

UNION

SELECT PNM
FROM GPG
WHERE GDN = 'A.04.01.002.001'  -- belongs to the UNIONS's 2:nd SELECT

ORDER BY PNM  -- belongs to the whole UNION
SELECT DISTINCT PNMs.PNM 
FROM (
        SELECT PNM FROM GPD
    UNION
        SELECT PNM
        FROM GPG
        WHERE GDN = 'A.04.01.002.001'
) PNMs
ORDER BY PNM

只要您 UNION GPD 表中的所有 PNM 值,您就永远不会得到所需的 output。 您将始终获得所有 PNM 值,而不是与给定 GDN 值相关的子集。

您只需要:

SELECT DISTINCT PNM
FROM GPG
WHERE GDN = 'A.04.01.002.001'
ORDER BY PNM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM