簡體   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