1 有一个表 我想返回第三行到第五行的值 用sql语句实现 (sqlserver ,mysql两种数据库)
2 t 表 id name phone adress
b表 name phone adress
我能不能同时更新表中的两列 根据b 表同时更新t表的 phone adress 两列 name 相同的
我的这个是可以执行的
[code="SQL"]
UPDATE TEST2 a
SET (PASSWORD,FULLNAME)= (select password,fullname from test1 where loginid = a.loginid)
[/code]
就字段名和你的不一样,
你的两个表的字段类型是一样的吗?~
2.
update t set phone='xx',adress='xx' where name in (select name from b);
这第二个问题不是很清楚,是根据b表的名字去同时更新两个表的address和phone?
2、
UPDATE t a
SET (phone,adress)= (select phone,adress from b where name = a.name);
哦 我说的是ORACLE,你是oracle吗?
[code="SQL"]
UPDATE t a
SET phone= (select phone from b where name = a.name),
adress =(select adress from b where name = a.name)
where name in (select name from b)
[/code]
貌似写的比较复杂了,没有装SQLSERVER和MYSQL,没办法试
哪有a表啊 你写的不是t吗?
如果是a表把t改成a呗。
update a set phone='xx',adress='xx' where name in (select name from b);
什么意思呢,只要a表中的name在b表查出的所有name数据列表中符合的就更新。
这个如果只有一条成立,多条呢也成立。
如果name 是唯一的 那就没问题。但是一般实际上没有name是唯一的,都用Id.或者主键。
LZ的意思应该是 把T表的两字段值更新为B表对应的两个字段的值,条件是NAME相同的时候