我有两个表,我试图加入为第三个表生成一组唯一的数据,但是在正确执行此操作时遇到了麻烦。
left
表格包含id
字段,以及公共加入字段(a
)。right
表具有公共连接字段(a
),另一个字段(b
)我试图提取id
和b
的结果集,其中id
和b
都不重复。
我有一个SQL小提琴设置:http://www.sqlfiddle.com/#!9/208de/3/0
理想的结果应该是:
id | b
---+---
1 | 1
2 | 2
3 | 3
每个id
和b
值只出现一次(它们只是在这里匹配的巧合,不能总是假设)。
由于
答案 0 :(得分:-1)
CTE和DISTINCT怎么样,那会有用吗?
WITH
cte1 (ID, B)
AS
(
SELECT DISTINCT Table1.ID
FROM Table1
WHERE Table1.ID IS NOT NULL
GROUP BY Table1.ID
)
SELECT DISTINCT
Table2.b
FROM Table2 AS sp
INNER JOIN cte1 AS ts
ON sp.b <> ts.ID
ORDER BY ts.ID DESC