[英]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.