SQL,判断一个表中的字段是否存在于另一个表中,如何写
发布网友
发布时间:2022-04-11 00:36
我来回答
共5个回答
热心网友
时间:2022-04-11 02:06
楼主说的是更新吧,楼上说的是sql
server的语法,不知道楼主是什么数据库,如果是oracle的话
建议这么写:
update
a
set
col=(select
col
from
b
where
a.id=b.id)
exists(select
1
from
b
where
a.id=b.id
)
注意:两个表的id
一定要一一对应,不让会报错:查询单个值返回多条记录。
热心网友
时间:2022-04-11 03:24
你是说的字段名还是字段的具体值?
字段名:
if (NOT exists ( select * from dbo.syscolumns where name = '字段名' and id in
(select id from dbo.sysobjects where id = object_id(N'[dbo].表名') and OBJECTPROPERTY(id, N'IsUserTable') = 1))
)
字段的具体值:
一楼的就可以,但是你必须知道要比较的两列的列名才可以
热心网友
时间:2022-04-11 04:58
SELECT * FROM 表A WHERE 字段A IN (SELECT 字段B FROM 表B)
热心网友
时间:2022-04-11 06:50
假设你说的字段名称相同就算存在的话
select name from syscolumns where id=(select id from sysobjects where name='表名A')
and name in (select name from syscolumns where id=(select id from sysobjects where name='表名B'))
如果有,查询显示相同字段名
如果没有,查询显示无
热心网友
时间:2022-04-11 08:58
if exists (select *from A where 字段 in(select 字段 from B))
print("存在")