SQL 数据问题!

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:51:35
表一 有2个字段 F1 F2
表二有1个字段 name ID
表一字段的值对应表二的ID

现在我要查询F1 F2的值 替换为表二的name的值 写入数据集
该怎么处理
表二是 2个字段 name ID
表1 F1 F2的值与表二的ID的值相同

表一
F1 F2
1 1
2 2
表二
id name
1 张三
2 李四

然后我F1 F2都要得到NAME的值

F1 F2
张三 张三
李四 李四

不是修改表的内容只是查询!

SELECT B.NAME AS F1, C.NAME AS F2
FROM 表1 A,表2 B,表2 C
WHERE A.F1 = B.ID AND A.F2 = C.ID

刚刚有点糊涂了,重新写 只要把表2连接2次就行了

如果F1不等于F2的情况存在
select b.name as f1,b.name as f2 from 表一 a,表二 b where a.f1=b.id and b.id=a.f2
回答者:biyxkjy - 千总 四级 8-7 11:35

这个写法会掉数据

你写的不是很清楚,表二有几个字段。表二的name的值,要对应表一的哪个字段???

怎么会有两个字段对应,同一个ID呢-_-`!,请你把两个表中各字段的关系说清楚好么

select b.name as f1,b.name as f2 from 表一 a,表二 b where a.f1=b.id and b.id=a.f2

只需要两个表Join起来就好了。

select a.*, b.name as F1, c.name as F2
from 表一 as a join 表二 as b on a.F1=b.id join 表二 as c on a.F2=c.id

select
(select name from 表2 where id = 表1.id) as name1
(select name from 表2 where id = 表1.id) as name2
from 表1

select t2.name, t3.name
from 表1 t1
inner join 表二 t2 on t1.F1=t2.id
inner join 表二 t3 on t1.F1=t3.id;

3/4楼的方法,简单易理解