我有两个值数组,如X,Y,Z和1,2 有一个表A有两列。我想在表A中验证所有组合的记录是否存在而不管重复。 e.g。
X 1
Y 1
Z 1
X 2
Y 2
Z 2
提前致谢!
答案 0 :(得分:2)
无论价值如何,以下都应该有效:
select col1, col2
from (select distinct col1 from combtest), (select distinct col2 from combtest)
minus
select col1, col2
from combtest
首先获得可能的组合然后减去实际组合。
答案 1 :(得分:1)
这适用于任何数据集,并且不会假设您知道表中的值。
查询返回缺少的所有行。您可以轻松地将其转换为插入语句以填充表格。
SELECT *
FROM
(select * from (SELECT DISTINCT col1 FROM table1) CROSS JOIN (SELECT DISTINCT col2 FROM table1)) AS t1
LEFT OUTER JOIN table1 ON t1.col1 = table1.col1 AND t1.col2 = table1.col2
WHERE
table1.col1 is null