sql查询一个表里的数据在另一个表是不是存在

Posted

tags:

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

sql查询一个表里的数据在另一个表是否存在,如果不存在就写入这个表,存在就不写,用SQL完成怎么写

insert into tableA
select * from tableB b where not exists(select 1 from tableA a where a.id = b.id)
insert into tableA
select * from tableB b
left join tableA a on a.id = b.id
where a.id is null
----用 not exists来判断,left join ,其中条件为唯一性主键
参考技术A --创建测试表
CREATE TABLE AA_TMP(ID VARCHAR2(10)); --插入目标表
CREATE TABLE AA_LOOKUP(ID VARCHAR2(10));--要插入的数据

INSERT INTO AA_LOOKUP VALUES('1');
INSERT INTO AA_LOOKUP VALUES('2');
INSERT INTO AA_LOOKUP VALUES('3');
COMMIT;

--插入数据不存在时更新
INSERT INTO AA_TMP(ID)
SELECT ID FROM AA_LOOKUP A
WHERE NOT EXISTS
(SELECT 1 FROM AA_TMP B
WHERE A.ID=B.ID
)
;
COMMIT;
参考技术B 1先判断是否存在
if exists(select * from 表名where 字段not in '数据')
insert添加
参考技术C

select * from swdj where qymc not in (select qymc from gsdj)

如何在sql数据库表里加入新的一列(表里原有数据)

先修改表,允许之前各列可以为空,再去删掉了原数据。但在添加完一列后提示不能保存,跳出了这个

求高手看看那

因为userid字段限定为不可为空,插入空数据,造成报错。

在数据库表中,查询新列的sql示例如下,

1、创建测试表,create table test_num(id number, fee number(10,3));

2、查看表的属性,共包含两列,ID、FEE,

3、执行sql语句,插入新字段,alter table test_num add (fee2 number(10,3));

4、重新查看表结构,字段已加上,

参考技术A

1、首先在桌面双击“SQL Server 2008R2”的图标,点击进入它的管理界面,如下图所示。

2、在里面找到“数据库”菜单,右键这个选项,找到“附加数据库”,点击这个选项,如图所示。

3、来到“附加数据库”的界面,点击“添加”按钮,即可跳转到本地电脑里面的文件选择项,如图所示。

4、然后在自己的本地电脑里面找到刚刚需要附加的数据库文件,找到“.mdf”文件,点击附加。

5、这时新的数据就附加到我数据库里面了。

参考技术B 不需要删除原有数据,
直接alter table 表名 add 列名 数据类型
参考技术C 用SQL语句试一下。

alter table tmp_tb_user add Userid int
类似这样的语句,你根据实际情况修改一下。
参考技术D 你新添加的那列userid才是真正应该设置为可空的,但是你怎么不勾呢?追问

后来我勾了,但是写数据进去又报错了

追答

是这样的,在编辑模式下sqlserver不允许有两行相同,你先按ESC取消了,然后删除所有行,如果删不掉就用delete语句删除,然后再一行一行地填,注意决不能有两行数据完全一致!

本回答被提问者采纳

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

SQL中,如何查询存在一个表而不在另一个表中的数据记录

SQL把一个表里的数据赋值到另外一个表里去

急急急,Sql查询一个字段是不是存在某一个值,怎么写查询语句?

如何用sql 语句查找一个表里的两个字段重复的记录

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

sql如何将两个表里的数据同步?