日期:2014-05-18  浏览次数:20428 次

SQL高手进
我遇到一个查询,A表是基础表,B表是从基础表读取的部分数据
大致结构如下:
A:
    id
    desc
    ....

B:
    id
    a_id         (取值从A表中ID获得)

我想构造一个查询,查询结构和A表类似,只是多了一个字段用于标识如果在B中已经存在A中的记录,就填充,否则就置为false

    高手们,请问我该怎么做?
    好像以前做过,一时想不起来了,指点指点!


------解决方案--------------------
Select
A.*,
(Case When B.a_id Is Null Then 'false ' Else Rtrim(B.id) End) As a_id
From
A
Left Join
B
On A.id = B.a_id
------解决方案--------------------
select id,a_id,case when A.id is null then 'false ' else '填充值 ' end as 列1
from B
left join A on A.id=B.a_id
------解决方案--------------------
通常用exists做判斷,但是用關聯的效率更優一些。

修改下上面的bug

Select
A.*,
(Case When B.a_id Is Null Then 'false ' Else Rtrim(B.a_id) End) As a_id
From
A
Left Join
B
On A.id = B.a_id