SQL语句如下:
SELECT * from TABLE1
full join TABLE2 on TABLE1.xingming = TABLE2.xingming
where
TABLE1.xingming is null or TABLE2.xingming is null
分析:
1、首先得出两个表的并集
注:full join :存在匹配,匹配显示;同时,将各个表中不匹配的数据与空数据行匹配进行显示。可以看成是左外连接与右外连接的并集。
图中结果左侧两列为TABLE1,右侧两列为TABLE2。
前三条记录表示TABLE1和TABLE2都有的数据。
TABLE1项为NULL的记录说明TABLE2中无相同项。
同理,TABLE2项为NULL的记录说明TABLE1中无相同项。
下面,只需要设置筛选条件,过滤出所需记录。
2、设置过滤条件,得到结果
从结果中可以看出,表1中的赵二在表2中没有相同xingming的记录。
表2中的刘六在表1中没有相同xingming的记录。
本题还有其它多种解法,此处列出比较好理解的一种。
扩展资料:
使用自联接
即使表在数据库中没有自反关系,也可将它与自身联接。 例如,可使用自联接查找生活在同一城市的作者对。
与任何联接一样,自联接至少需要两个表。 不同之处在于,不是向查询中添加第二个表,而是添加同一个表的第二个实例。 这样,可将表的第一个实例中的列与第二个实例中的同一列相比较,这样可相互比较列中的值。 查询和视图设计器为表的第二个实例分配一个别名。
例如,如果要创建自联接来查找居住在 Berkeley 内的所有作者对,可将表的第一个实例中的 city 列与第二个实例中的 city 列相比较。 所得到的查询可能类似于:
SELECT
authors.au_fname, authors.au_lname, authors1.au_fname AS Expr2, authors1.au_lname AS Expr3
FROM authors INNER JOIN authors authors1 ON authors.city = authors1.city
WHERE
authors.city = 'Berkeley'
参考资料:
百度百科.full join
1、打开access工具,可以新建表复制数据进去,或者你通过excel导入进去,尽量不要用链接表,因为这样对原有表覆盖,这样是不行的。我们可以将门诊药品使用情况跟住院药品使用情况数据导入。
2、导入好表,就可以新建查询,我们可以显示门诊药品使用情况添加进去。
3、然后在查询点击追加查询。就会提示你要追加数据到住院药品使用情况表中去。当然你也可以追加另外数据库中表,但是不建议这样做,除非你在数据库中建了新的同规格表。
4、、我们点击运行就可以看到已经追加837行,也就是说已经将门诊数据追加到住院表中去INSERTINTO住院药品使用情况(201303),SELECT门诊药品使用情况(201303).*FROM门诊药品使用情况(201303)
5、我们再把住院表进行查询分组统计。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)