sql 语句

1 有一个表 我想返回第三行到第五行的值 用sql语句实现 (sqlserver ,mysql两种数据库)
2 t 表 id name phone adress
b表 name phone adress
我能不能同时更新表中的两列 根据b 表同时更新t表的 phone adress 两列 name 相同的

7个回答

我的这个是可以执行的
[code="SQL"]
UPDATE TEST2 a
SET (PASSWORD,FULLNAME)= (select password,fullname from test1 where loginid = a.loginid)
[/code]

就字段名和你的不一样,
你的两个表的字段类型是一样的吗?~

  1. select * from table where between 3 and 5 mysql 可以用 select * from table limit 3,5

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相同的时候

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问