我认为这很容易,但无法弄清楚。
我有一张像这样的表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。
有没有人能帮助我解决这个问题?
答案 0 :(得分:0)
使用a2
生成行,然后过滤掉已匹配的行:
cross join