SQL语句 一个表的值与另一个表的字段一致,怎么把两一个表的值作为条件,限定查询的字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句 一个表的值与另一个表的字段一致,怎么把两一个表的值作为条件,限定查询的字段相关的知识,希望对你有一定的参考价值。

SQL语句 A表(A1,A2,A3)3个字段,B(B1,B2)表中有两个字段 where A1=B1后有两条数据,其中B2有两个值(A2,A3)(备注:B2的值与A表中字段相同) 想要查询的结果是 select A2,A3from A 党B2的值有三条时 想要的结果就是select A1,A2,A3 from A
Table1,(A,B,C,itemID); Table2(id,item1,item2,,,,,item100)
Table1.itemID=Table2.id
select A from Table1a,Table2 b aitemID=b.id
结果是 item3(a表A字段的值),item4(a表A字段的值)
我想要的最终结果是 select item3(字段),item4(字段) from Table2

参考技术A 你可以把管理员ID1的值赋给管理员ID2 的值,然后只把管理员ID1作为外键就可以了,不允许同时绑定相同的外键。追问

我其实是想要把一个表A中的一个字段a的值设置成另一个表B的字段 当查询B表时候我想选择一些字段展示,这个选择就是通过查询A表加一下条件,所以你的回答我不理解

参考技术B 你的描述把我看晕了= =
你的意思是不是A表3个字段A1,A2,A3,B表有个B2字段,他的值就是A表的字段名,A2,A3?追问

是这个意思

SQL怎么把一个表字段信息(ID)修改为对应另一个表的内容

A表 B表

A表、B表都有address_ID这一列,B表中的addressname是address_ID对应的具体内容。请问,如何将A表中的address_ID改为B表中对应的addressname?
1楼、2楼你们的回答确定是sql sever上的语句吗??

 

 

 

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

ALTER TABLE A ALTER COLUMN address_ID VARCHAR(128)

 

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

UPDATE a

SET  a.address_ID = b.addressname

FROM a, b

WHERE a.address_ID = b.address_ID

SELECT  *  FROM a

 

 

 

参考技术A 呵呵,楼上的update语句里,连B表都没有,不报错就怪了。

update A set A.address_id = (select B.addressname from B where B.address_id = A.address_id)

执行之前,确认A表address_id字段的类型和长度。
参考技术B update a set a.address_id = b.addressname where a.address_id=b.addree_id

执行语句前最好检查a.address_id 的长度是否和b.addressname一致,最好大于等于后者,这样转换后信息不丢失。
另外,要求a.address_id为字符型。追问

update A set A.address_id = B.addressname where A.address_id=B.address_id

为什么报错啊

能留个联系方式吗 详谈~~

追答

不好意思,没验证。现在把经过验证的给你。在sql2000,2005,2008上通过
UPDATE a
SET address_id = c.addressname
FROM a INNER JOIN
(SELECT address_id, addressname
FROM b) AS c ON a.address_id = c.address_id
绝对不报错。
注意a表address_id 为字符型,且宽度足够

参考技术C update A表 set A表.address_Id=B表.addressname from B表 where A表.address_ID=B表.address_Id 参考技术D --查询时翻译字段
select A.address_ID,B.addressname from A,B where A.address_ID = B.address_ID

go

--真正update表A
alter table A alter column address_ID varchar(128)

update A set A.address_id = B.addressname where A.address_id=B.addree_id追问

update A set A.address_id = B.addressname where A.address_id=B.address_id

为什么报错啊
能留个联系方式吗 ? 详谈~~

追答

我晕,纯属失误,这句应该没问题了

update a set a.address_ID = b.addressname from a,b where a.address_ID = b.address_ID

以上是关于SQL语句 一个表的值与另一个表的字段一致,怎么把两一个表的值作为条件,限定查询的字段的主要内容,如果未能解决你的问题,请参考以下文章

更新一个表的字段值等于另一个表的字段值的SQL语句要怎么写?

SQL语句中,把一个表的关键字段值赋给另一个表的那句话怎么写?

sql怎么将一张表的字段赋值给另一张表

更新一个表的字段值等于另一个表的字段值的SQL语句

SQL问题,怎么将一张表的某个字段更新为另一张表的字段

sql server 2000将一个表的某个字段数据导入另一个表的某个字段中