在线等,解决一定给分,求一sql语句....
现在有两张表 ,表A 表B
表A结构如下:
表A(字段id是表A的主键)
id text
---------------
001 AAA
002 BBB
表B结构如下:
表A(字段autoid是表B的主键,id1和id2都是关联到表A中字段id的外键)
autoid id1 id2
------------------
1 001 002
也就是说表B的字段 "id1 "和 "id2 "分别都引用表A中的主键字段 "id "
我想查询出结果是:
auotid id1 id2
-----------------
1 AAA BBB
请问这样的sql语句怎么写?
[解决办法]
create table A(id varchar(10), [text] varchar(10))
insert A select '001 ', 'AAA '
union all select '002 ', 'BBB '
create table B(autoid int, id1 varchar(10), id2 varchar(10))
insert B select 1, '001 ', '002 '
select B.autoid, tmp1.[text] as id1, tmp2.[text] as id2
from B
left join A tmp1 on B.id1=tmp1.id
left join A tmp2 on B.id2=tmp2.id
--result
autoid id1 id2
----------- ---------- ----------
1 AAA BBB
(1 row(s) affected)
[解决办法]
--关联两次A,分别起别名即可,因为有外键关系,用inner join即可。
select
B.autoid,
T1.[text] as id1,
T2.[text] as id2
from B
inner join A T1 on B.id1 = T1.id
inner join A T2 on B.id2 = T2.id