我想对以下两个表进行联接,这将有助于识别所有具有缺失属性的客户。属性上的完全外部联接不起作用,因为空值不对应于任何客户。 一种选择是按客户分组以获得不同属性的计数并将其与属性计数进行比较。这会给有差异但希望错过基本属性的客户。这可能吗?
Table A (Customer to Attributes)
-----------
C1 | ATTR_1
C1 | ATTR_2
C1 | ATTR_3
C2 | ATTR_1
C2 | ATTR_2
C3 | ATTR_3
Table B (Attributes)
-------
ATTR_1
ATTR_2
ATTR_3
Output
------
C2 | ATTR_3
C3 | ATTR_1
C3 | ATTR_2
最佳答案
执行cross join
以获得所有组合。使用 except
删除现有的:
SELECT DISTINCT ta.Customer, tb.Attributes
FROM tableA ta CROSS JOIN tableB tb
EXCEPT
SELECT Customer, Attributes
FROM tableA
关于sql - 如何连接两个表 A 和 B 以获得 A 中的非连接列且数据不在 B 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57515232/