sql问题~~`
CREATE TABLE [A] (
[id] [bigint] NOT NULL ,
[id1] [int] NULL ,
[id2] [int] NULL ,
) ON [PRIMARY]
GO
CREATE TABLE [B] (
[id] [bigint] NOT NULL ,
[id1] [int] NULL ,
[id2] [int] NULL ,
) ON [PRIMARY]
GO
insert into A values( '1 ', '1 ', '0 ' )
insert into A values( '2 ', '2 ', '0 ' )
insert into A values( '3 ', '3 ', '0 ' )
insert into B values( '1 ', '1 ', '3 ' )
insert into B values( '2 ', '2 ', '2 ' )
insert into B values( '3 ', '3 ', '1 ' )
两表的关系是 A.id=B.id2
select * from A left join B on A.id=B.id2
能得到这个:
idid1id2 idid1 id2
-------------------------------------------------
110331
220222
330113
我却想要这样的:
idid1id2
----------------------
110 (A表)
331 (B表)
220 (A表)
222 (B表)
330 (A表)
113 (B表)
上周没有解决 现在在线求教~ 没有分了 实在对不起~
drop table A
drop table B
[解决办法]
select id,id1,id2 from (
select id as f,* ,1 as c from A
union
select id2 as f,* ,2 as c from B) a
order by a.f,c