查询显示表A中的所有值和表B中的未匹配值

时间:2018-04-17 14:38:09

标签: sql matching

我认为这很容易,但无法弄清楚。

我有一张像这样的表A:

Id|A1  |A2
1 |5   |2
2 |5   |3
3 |6   |9
4 |7   |null

和表B是这样的:

Id|B1
1 |1
2 |2
3 |3
4 |9

我想用这个输出写一个选择:

R1 | R2 
5  | 1
5  | 9
6  | 1
6  | 2
6  | 3
7  | 1
7  | 2
7  | 3
7  | 9  

我可以获得给定A值的不匹配值:

SELECT * FROM B 
WHERE B.id NOT IN (
    SELECT A2 FROM A WHERE A2 = 5
)

但无法构建正确的SQL。

有没有人能帮助我解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用a2生成行,然后过滤掉已匹配的行:

cross join