看了你的追问,我觉得你的问题应该是在查询的时候解决
查询的时候就直接查询出A,B,C,D,E,如果是在一个数据的两张表的话最简单
select tA, tB,tC,tD,aE from tableT t, tableA a where tC=aC, tB=aB,tD=aD
如果是两个不同的数据库的话就先把两个数据库link一下,然后同样的解决方案
在关系代数中,连接运算是由一个笛卡尔积运算和一个选取运算构成的。
首先用笛卡尔积完成对两个数据集合的乘运算,然后对生成的结果集合进行选取运算。
确保只把分别来自两个数据集合并且具有重叠部分的行合并在一起。。连接的全部意义在于在水平方向上合并两个数据集合(通常是表),并产生一个新的结果集合。
其方法是将一个数据源中的行于另一个数据源中和它匹配的行组合成一个新元组。
步骤
两个集合的结构要一致,对应的字段数,字段类型
将两个集合用 UNION ALL 关键字合并,这里的结果是有重复的所有集
将上面的所有集 GROUP BY id
最后 HAVING COUNT(id)=1,等于1的意思是只出现了一次,所以这个是差集,如果等于2,那么就是交集
代码演示
差集
-- 下面的sql有明显的问题,不过这个只是一个示意,
-- 从一个表中查询不需要用到交集和差集,条件可以合并在一起直接查询出来的能明白意思就好
-- 下面的sql的意思是找到所有非技术部的员工的id,code和name
SELECT a FROM(
SELECT id,code,name FROM test_emp
UNION ALL
SELECT id,code,name FROM test_emp WHERE dept='JSB'
)a GROUP BY aid HAVING COUNT(aid)=
交集
-- 下面的sql的意思是找到所有技术部年龄大于25的员工
SELECT a FROM(
SELECT id,code,name FROM test_emp WHERE age>25
UNION ALL
SELECT id,code,name FROM test_emp WHERE dept='JSB'
)a GROUP BY aid HAVING COUNT(aid)=2
并集
-- 下面的sql的意思是找到所有技术部的员工和年龄大于30的员工
-- union可以自动去除重复的内容,得到不重复的结果集
SELECT a FROM(
SELECT id,code,name FROM test_emp WHERE age>25
UNION
SELECT id,code,name FROM test_emp WHERE dept='JSB'
)a
以上就是关于python下有两个数据集,如 A,B,C,D 和 B,C,D,E 。两个数据集,请问我该怎样合并成A,B,C,D,E 的样子全部的内容,包括:python下有两个数据集,如 A,B,C,D 和 B,C,D,E 。两个数据集,请问我该怎样合并成A,B,C,D,E 的样子、在数据库里,什么是连接运算、请问一下大神行家:使用Navicat for MySQL可以取得2个数据库的并集吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)