如何连接两个表,两边都有不同的列?

时间:2016-03-03 20:39:24

标签: mysql sql join

我有两个表,我试图加入为第三个表生成一组唯一的数据,但是在正确执行此操作时遇到了麻烦。

  • left表格包含id字段,以及公共加入字段(a)。
  • right表具有公共连接字段(a),另一个字段(b

我试图提取idb的结果集,其中idb都不重复。

我有一个SQL小提琴设置:http://www.sqlfiddle.com/#!9/208de/3/0

理想的结果应该是:

id | b
---+---
1  | 1
2  | 2
3  | 3

每个idb值只出现一次(它们只是在这里匹配的巧合,不能总是假设)。

由于

1 个答案:

答案 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