2016-02-17 134 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' 
    
    相关问题