首页 新闻 赞助 找找看

各位SQL查询大神来救命啊 小白有个问题解决不了

0
悬赏园豆:5 [待解决问题]

有一个表是这样的,A表

     ida  idb  name

  1     3    王老五

  2          5  李老四  

  3     4  张老二 

      4         2       陈老幺

      5         1  朱老大

我在工作中遇到这个问题,ida是主键,name是值,可是呢,idb字段保存的也是这张表的主键值 现在需要把ida对应的名字查出来并且也要把idb字段的名字查处来。小弟平时没怎么写过sql,请大哥们给点指导  时间迫在眉睫 

 

   

码大爷的主页 码大爷 | 初学一级 | 园豆:194
提问于:2017-01-09 15:39
< >
分享
所有回答(5)
0

select * from A where A.ida in (id,select A.idb from A where A.ida=id); id就是你的参数

让我发会呆 | 园豆:2929 (老鸟四级) | 2017-01-09 15:44

师兄 没有查出来

 

支持(0) 反对(0) 码大爷 | 园豆:194 (初学一级) | 2017-01-09 15:54

@太极小帅帅: = =!这个……,哪地方错了?

 

支持(0) 反对(0) 让我发会呆 | 园豆:2929 (老鸟四级) | 2017-01-09 15:56

@让我发会呆: 我也不清楚啊

支持(0) 反对(0) 码大爷 | 园豆:194 (初学一级) | 2017-01-09 16:04

@太极小帅帅: = =!,你不会是copy过去就直接用的吧???

select ida,idb,name from A where ida in (id,select idb from A where ida=id);  有两个地方写上id的

你执行的时候错误信息 难道没有吗?

支持(1) 反对(0) 让我发会呆 | 园豆:2929 (老鸟四级) | 2017-01-09 16:08
0

select a.ida,(select name from A b where b.id=a.idb) idbname,a.name from A a

忧虑的心 | 园豆:73 (初学一级) | 2017-01-09 15:55

举例的名字不错

支持(0) 反对(0) 忧虑的心 | 园豆:73 (初学一级) | 2017-01-09 15:56

@JameChen: 师兄 谢谢你 查出来了  举例的名字你喜欢就送你吧 哈哈哈哈哈哈哈哈哈哈哈哈

支持(0) 反对(0) 码大爷 | 园豆:194 (初学一级) | 2017-01-09 16:04

@太极小帅帅: 

select a.Name,B.name from A
left join A as B
on A.ida=B.idb

支持(0) 反对(0) 姚小丹 | 园豆:42 (初学一级) | 2017-01-10 18:23
0

select a.name,b.name

from tablea a

left join tableb b

  on a.idb=b.idb

悦光阴 | 园豆:2251 (老鸟四级) | 2017-01-09 18:08
0

这个类型是表的自连接,这类的问题多半是附属的。到时候你可以百度百度省、市级联的的SQl语句    和这个如出一辙

姚小丹 | 园豆:42 (初学一级) | 2017-01-10 18:20
0

如上楼所说,确实是自连接

思路:把这一张表看成两张表,假设A表是员工表,B表是老板表,(A表,B表一模一样,都是你的A表)

关键点是连接条件,就是员工表的老板(idb)等于老板表主键ID(ida)

1 select e.ida,e.name,d.ida,d.name
2 from t2 e,t2 d
3 where e.idb=d.ida
4 order by e.ida

第3行代码就是连接条件,

第4行是按照员工ID排序(好看而已)

注明:在oracle下测试没有问题

 

寒魔影 | 园豆:220 (菜鸟二级) | 2017-01-12 11:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册