2016-02-17 130 views
3

我有兩個表如何從兩個表在一個查詢中獲取記錄

  1. rental_detail - > [idBuildingFloorFlate_noNamedoj]

rental_detail存儲的信息此人。
這是rental_detail

|id|name|building|Floor|Flate_no|doj |1 |aana| C | 1st |c-101 |06-12-2015

而在

  • Monthly_rent - 每月租金> [idBuildingFloorFlate_nodate]存儲的細節由該人支付
  • 這是month_rent

    |id|building|Floor|Flate_no|date |rent| |1 | C | 1st |c-101 |02-01-2016|2000 |2 | C | 1st |c-101 |03-02-2016|2000 |1 | C | 1st |c-101 |06-12-2015|2000

    我需要從Monthly_rent馬克斯日期和有關人員從rental_detail的所有信息,其中建築爲c,地板是1日和flate是C-101

    我嘗試此查詢:

    select *,max(mr.date) as m 
    from monthly_rent mr 
    Inner join rental_details rd 
        on rd.building='C' and rd.floor = '1st' And rd.flate_no='C-101 
    

    我需要這個

    |1|aana|C|1st|c-101|03-02-2016|

    AANA工資最後租金2016年3月2日

    +0

    你會得到什麼結果? –

    +0

    最大日期來自monthlyrent,其中建築物是c,樓層是1樓,樓層是c-101 –

    +0

    當你有簡單的查詢時,不要做不必要的連接。只需匹配與表格相關的唯一標識即可。 –

    回答

    0

    試試這個:

    select *, max(mr.date) as m 
    from monthly_rent mr, rental_details rd 
    where mr.id = rd.id 
    and rd.building='C' 
    and rd.floor = '1st' 
    and rd.flate_no='C-101' 
    

    這應該工作....

    +0

    其取自rentat_detail表的最大日期表 –

    +0

    是的!因爲你在問它。將其更改爲rd。日期 –

    +0

    它的顯示共同日期從表 –

    0

    嘗試這樣,它應該幫助..

    select rd.*,max(mr.date) as m 
    from monthly_rent as mr 
    LEFT join rental_details as rd ON mr.building = rd.building 
    WHERE rd.floor = '1st' and rd.flate_no='C-101' 
    
    2

    試試這個:

    SELECT rd .*,mr.date AS mr_date 
    FROM rental_details rd 
    LEFT JOIN monthly_rent mr 
    ON rd.date = (SELECT MAX(date) FROM monthly_rent WHERE building='C') 
    WHERE rd.building='C' AND rd.floor = '1st' AND rd.flate_no='C-101' 
    
    相關問題