Sql 两个数据集中列的匹配排列
我有两组数据(csv文件),其中包含关键数据库列的出现次数及其出现次数。(原始数据库表不再可用) 例如: 第1组 第1列第2列第3列计数 1 2 3 100 1 2 2 200 3 1 1 700 第2组 第1列第2列第3列计数 1 2 3 500 1 2 2 133 1 1 1 100 我需要一些方法来比较这两个表,以告诉我,如果在第1组中有一个组合在第2组中不存在 我正在考虑编写一个脚本,在集合1中循环一个集合2的嵌套循环,但我想知道是否有更好的方法来实现这一点 愿意接受建议吗 谢谢 请不要循环:) 左连接在未找到记录的位置创建空值。左连接t1到t2,并且t2始终为空表示t1中的记录在t2中不匹配Sql 两个数据集中列的匹配排列,sql,database,algorithm,csv,permutation,Sql,Database,Algorithm,Csv,Permutation,我有两组数据(csv文件),其中包含关键数据库列的出现次数及其出现次数。(原始数据库表不再可用) 例如: 第1组 第1列第2列第3列计数 1 2 3 100 1 2 2 200 3 1 1 700 第2组 第1列第2列第3列计数 1 2 3 500 1 2 2
将此项更改为right join,其中t1.col1为null,您将看到所有t2也不在t1中。您没有指定DBMS,因此这是ANSI SQL: 要获得表2中不在表1中的组合:
select col1, col2, col3
from table_1
except
select col1, col2, col3
from table_2;
要获得表1中不在表2中的组合:
select col1, col2, col3
from table_2
except
select col1, col2, col3
from table_1;
要在一个语句中同时使用这两种语句,请执行以下操作:
(
select col1, col2, col3
from table_1
except
select col1, col2, col3
from table_2
)
union all
(
select col1, col2, col3
from table_2
except
select col1, col2, col3
from table_1
);
SQLFiddle示例:
select col1, col2, col3
from table_1
except
select col1, col2, col3
from table_2;
select col1, col2, col3
from table_2
except
select col1, col2, col3
from table_1;
(
select col1, col2, col3
from table_1
except
select col1, col2, col3
from table_2
)
union all
(
select col1, col2, col3
from table_2
except
select col1, col2, col3
from table_1
);