select a.room_id,a.room_area,d.c_name,c.rent_money
from db_room a
left join db_rent_detail b
on a.room_id=b.room_id
inner join db_rent c
on b.rent_id=c.rent_id
inner join db_clients d
on c.c_id=d.c_id

解决方案 »

  1.   

    select a.room_id,a.room_area
    ,d.c_name
    ,c.rent_money
    from db_room a
    left join db_rent_detail b on a.room_id=b.room_id
    left join db_rent c on b.rent_id=c.rent_id
    left join db_clients d on c.c_id=d.c_id
      

  2.   

    select db_room .room_id,db_room.room_area, db_clients.c_name ,db_rent.rent_money
    from db_room , db_rent_detail ,   db_rent    ,db_clients where db_room.room_id = db_rent_detail.room.id
    and db_rent_detail.rent_id=db_rent.rent_id and db_rent.c_id=db_clients.cid
    最好用關聯把,等下我試寫個你看看
      

  3.   

    select
        a.room_id   ,
        a.room_area ,
        d.c_name    ,
        c.rent_money
    from
        db_room a
    inner join
        db_rent_detail b
    on
        a.room_id = b.room_id
    left join
        db_rent c
    on
        b.rent_id = c.rent_id
    inner join
        db_clients d
    on
        c.c_id = c_id
      

  4.   

    多谢三位zjcxc(邹建)的符合要求
    xluzhong(打麻将一缺三,咋办?) 只能显示已经出租的
    talantlee(團結就是力量) 的也一样多谢了,现在揭帖
      

  5.   

    select room_id ,room_area,c_name,(case when '出租' then ''
     when '出租' then ''
     when '出租' then ''
    end) as 
    from db_room a,db_clients b,db_rent c,db_rent_detail d
    where a.room_id=b.room and b.rent_id=c.rent_id and c.c_id=d.c_id同时如果这个房间已经出租出去,
    就显示承租该房间的公司名称和租金,
    如果没有出租就显示为空
    这个完全可以用CASE语句来实现
    参考:
    select a.Cname as Tcomname,b.Cname as TGoodname,D.nQuanty,c.cNote
    , (case when c.iEvaluate='-1' then '差评' 
    when c.iEvaluate='1' then '好评'
    when c.ievaluate='0' then '一般' end) as ievaluate 
    from Tcompany a,Tgoods b,Appraise c,orders D
    where b.ID=D.nProductID and D.Id=c.order_id and a.Id=b.NsaID
    and b.NsaID=@TcomID