联表查询的问题

玉琳 2011-06-02 02:15:32
表a
name Id1 Id2
abc 1 2
def 2 1

表b
classid classname
1 aaa
2 bbb

从表a查询name=’abc’的数据,然后根据a表的id1以及id2的值分别等于表b的classid取classname值.id1=1取表b中classid=1的classname的值即为aaa,id2=2取表b中classid=2的classname的值即为bbb, 也就是查询结果是 abc aaa bbb
...全文
64 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
BetterMe 2011-06-03
  • 打赏
  • 举报
回复
SELECT classname from b where classid in (select id1,id2 from a where name='abc');
-晴天 2011-06-02
  • 打赏
  • 举报
回复
create table ta(name varchar(10),Id1 int,Id2 int)
insert into ta select 'abc',1,2
insert into ta select 'def',2,1
create table tb(classid int,classname varchar(10))
insert into tb select 1,'aaa'
insert into tb select 2,'bbb'
select a.name,b.classname,c.classname from ta a
inner join tb b on a.id1=b.classid
inner join tb c on a.id2=c.classid
/*
name classname classname
---------- ---------- ----------
abc aaa bbb
def bbb aaa

(2 行受影响)

*/
君_洛洛 2011-06-02
  • 打赏
  • 举报
回复
select a.name,b.classname,c.classname
from a ,b b,b c
where a.id1=b.classid and a.id2=c.classid
and a.name='abc'

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧