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

仲間のフィールドb.image_idは、テーブル画像からimage_pathを取得する前にテストする必要があります... image_idが0の場合、テーブル登録からimage_idを取得し、テーブル画像からimage_pathを取得する必要があり、image_idが0 とは異なり、テーブル images から image_id を直接取得します...したがって、テーブルの仲間から favorite_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 に答える