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

请教一个联表查询SQL的写法
比如有2个表:
table   A
A_id   A_text             B_id  
1 a1 1
2 a2 null
3 a3 null
4 a4 2

table   B
B_id         B_text
1 'b1 '
2 'b2 '

A的B_id字段是对应B表的B_id的,但是可能为空,需要得到的结果是将A中每行对应的B_text查询出来,有就是B_text的实际值,如果为空就写 '无 '或者其他之类的.也就是下面的结果
A_id       A_text           B_id       b_text
1 a1 1 'b1 '
2 a2 null '无 '
3 a3 null '无 '
4 a4 2 'b2 '

Sql   Server的数据库

------解决方案--------------------
select A.*,B_id,isnull(B_text, '无 ') as B_text from A left join B on A_id=B_id
------解决方案--------------------
楼上的方法最简

select A.A_id,A.A_text,A.B_id,isnull(B.b_text, '无 ') from A left Join B on A.B_id=B.B_id