如何用sql将两张表的字段名和列值进行匹配?

如何用sql将两张表的字段名和列值进行匹配?,第1张

select B,XA1 from
(select 'A1' A1,A1, 'A2' A2,A2, 'A3' A3,A3 from A表) X,B表
where XA1=BA1
把括号内的查询语句作为一个表,表名是X

sql的语法如下(如果是oracle的需要另写):
update a set 评委姓名 = b评委姓名 from table1 a, table2 b where a选考科目 = b监考科目

mysql可以用以下方法

-- tableb 通过 aid 关联tablea 的id,把tableb的fielda字段写入tablea的fielda字段
UPDATE tablea SET fielda = (select fielda from tableb where tableaid=tablebaid)
-- 关联方式一样,把tablea中fielda的字段中的特定字符串替换成tableb中指定字段的值
update tablea set fielda = REPLACE(fielda,'[价格]',
(select price from tableb where tableaid=tablebaid)
)

sql server就不能一条语句更新了,要做存储过程来处理

不知道计算列能不能满足你的需要。
假设表table1有a、b两个列,想生成另一个列为a列值+b列值
计算列添加语句如下
ALTER TABLE table1
ADD c AS a+b
这样就新增加一个c列,c列不需要更新和赋值,会自动按计算列的公式a+b计算出取值。
当然a+b这种算法只是一个例子,可以根据需要设置为更为复杂的运算。

-- 先更改A表中列的数据类型

ALTER TABLE A ALTER COLUMN address_ID VARCHAR(128)

-- 开始联接查询,条件更新

UPDATE a

SET  aaddress_ID = baddressname

FROM a, b

WHERE aaddress_ID = baddress_ID

SELECT    FROM a

Insert Into b(字段名, ) Select 字段名1,字段2 From a Left Join b On a[字段1]=b[字段1] Where((b[字段1]) Is Null);
先左连接查询,判断出a中有b没有的行,筛选出来直接插入b表就行了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13401164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存