mysql 查询一个表中没有存在在另一个表的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 查询一个表中没有存在在另一个表的数据相关的知识,希望对你有一定的参考价值。

Abiao
id content
1 sfsdfsg
2 ddsgffd
3 gfggg
4 dggfhfd

Bbiao

id

2
3

那么我要查询到Abiao 里面在Bbiao没有的数据
(理想结果)就是:
id content
1 sfsdfsg
4 dggfhfd

越简单越精简 越好

SELECT * FROM A 
WHERE  id  NOT  IN  ( SELECT id FROM B);

或者
SELECT * FROM A 
WHERE 
NOT  EXISTS  ( 
SELECT 1 
FROM B 
WHERE B.id = A.id );

或者
SELECT 
  A.* 
FROM 
  A  LEFT JOIN B
    ON (A.id = B.id)
WHERE
  b.id  IS  NULL

参考技术A SELECT  A.* 
FROM Abiao  A  LEFT JOIN Bbiao B
ON (A.id = B.id)
WHERE B.id  IS  NULL

如何将一个表的查询结果插入到另一个表中?

将查询结果插入到另一个表的三种情况

一:如果要插入目标表不存在:

select * into目标表 from 表 where ...

二:如果要插入目标表已经存在:

insert into目的表 select * from 表 where 条件

三:如果是跨数据库操作的话: 怎么把A数据库的atable表所查询的东西,全部插入到B 数据库的btable表中

select * intoB.btable from A.atable where ...

同样,如果是跨服务器的,也是可以的。

参考技术A 1.
这里有两张表格,在表1中,有两个人的数学成绩。
2.
而在表2中,有两个人的物理成绩,我们要做的就是将表2中物理成绩导入表1中。
3.
在表1中,先选中“郝帅”对应的物理成绩的C2单元格,点击“插入”、“插入函数”。
4.
在“选择类别”中选择“查找与引用”。
5.
在函数中选择“VLOOKUP”,点击确定,然后点击弹出来的小窗口中第一行旁边的按钮。
6.
再点击“郝帅”所在单元格A2即可看到旁边的小窗口中出现了对应的字样。
参考技术B 如果表存在:
insert into tab1 select * from tab2;
如果表不存在:
create table tab1 as select * from tab2;
参考技术C 首先你查询后结果的字段与你要插入的表的字段的类型要一致,假入表 1,表2
将表2中查询出的结果插入到表1中,SQL如下(ORACLE):
INSERT INTO 表1(字段1,字段2,字段n)
select 表2.字段1,表2.字段2,表2.字段n from 表2

这样就可以满足你的要求

以上是关于mysql 查询一个表中没有存在在另一个表的数据的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL查询~ 存在一个表而不在另一个表中的数据

如何从一个表中过滤出其 id 出现在另一个表的列中的记录

将一个表的查询结果插入到另一个表中(oracle、mysql、sql 、GP)

如何在另一个表的大查询中创建一个包含嵌套数据的新表?

mysql视图的作用是啥

mysql中有2个结构一样的表,我想把两个表的交集存到另一个表中,请问怎么操作呢?