0

我有以下查询:

SELECT favorite_id,MO,name,b.image_id,image_path FROM buddies b,images i where reg_id=@regID and b.image_id=i.image_id

buddies 中的字段 b.image_id 应该在从表图像中获取 image_path 之前进行测试...如果 image_id 为 0,我必须从表注册中获取 image_id 并从表图像中获取 image_path 并且如果 image_id 是与 0 不同,我直接从表图像中获取 image_id ......所以当从表伙伴中选择 favourite_id 和 image_id 时,我需要在该表上循环每一行并测试 image_id

谁能帮我?

4

2 回答 2

2
SELECT favorite_id,MO,name,
b.image_id,
image_path = case when b.image_id ='0' then i1.image_path else i.image_path end

FROM buddies b, registration r 
left join images i  on b.image_id=i.image_id
left join images i1 on r.image_id=i1.image_id
where b.reg_id=@regID and  r.reg_id=@regID 
于 2013-10-31T08:08:02.880 回答
0
SELECT favorite_id,MO,name,b.image_id,
       case b.image_id when 0 then i.image_path else b.image_path end as image_path
  FROM buddies b,images i 
  where reg_id=@regID and b.image_id=i.image_id

那样的...

如果您需要额外的条件选择——那么它就在这里:SELECT CASE WHEN THEN (SELECT)

于 2013-10-31T08:04:27.063 回答