日期:2014-05-19  浏览次数:20777 次

求一条SQL语句,查询问题
表A,
NAME           ID
A                   1
B                   2
C                   3
D                   4
表B
ID           DEP
1             经理
2             顾问
要得到的结果
NAME       ID     DEP
A             1       经理
B             2       顾问
C             3
D             4

------解决方案--------------------
select a.name,a.id,(case dep when null then ' ' end ) dep from 表A a left join 表b b on a.id=b.id
------解决方案--------------------
左外连接:
select A.NAME,A.ID,B.DEP
from A left join B on A.ID=B.id
------解决方案--------------------
--用left join

select a.NAME,a.ID,b.DEP
from 表A a
left join 表B b on a.ID=b.ID

------解决方案--------------------
楼上和楼楼上正解
------解决方案--------------------
select a.NAME,a.ID,b.DEP from 表A a,表B b where a.ID *=b.ID

------解决方案--------------------
select 表A.* , isnull(表B.DEP, ' ') from 表A
left join
表B on 表A.ID = 表B.id
------解决方案--------------------
if object_id( 'pubs..表A ') is not null
drop table 表A
go

create table 表A
(
NAME varchar(10),
ID varchar(10)
)

insert into 表A(NAME,ID) values( 'A ', '1 ')
insert into 表A(NAME,ID) values( 'B ', '2 ')
insert into 表A(NAME,ID) values( 'C ', '3 ')
insert into 表A(NAME,ID) values( 'D ', '4 ')

if object_id( 'pubs..表B ') is not null
drop table 表B
go

create table 表B
(
ID varchar(10),
DEP varchar(10)
)
insert into 表B(ID,DEP) values( '1 ', '经理 ')
insert into 表B(ID,DEP) values( '2 ', '顾问 ')

select 表A.* , isnull(表B.DEP, ' ') as DEP from 表A
left join 表B on 表A.ID = 表B.ID

drop table 表A,表B

NAME ID DEP
---------- ---------- ----------
A 1 经理
B 2 顾问
C 3
D 4

(所影响的行数为 4 行)