Php 如何在一次查询中从两个表中获取记录

Php 如何在一次查询中从两个表中获取记录,php,mysql,Php,Mysql,我有两张桌子 租赁详细信息->[id,建筑,楼层,公寓号,名称,司法部] rental\u detail存储此人的信息。 这是租金详细信息 | id | name |大楼|楼层|公寓|号|司法部 |1 | aana | C | 1st | C-101 | 06-12-2015 而且 月租金->[id,建筑,楼层,公寓号,日期]存储个人每月租金支付的详细信息 这是月租金 | id |建筑|楼层|公寓|编号|日期|租金| |1 | C | 1st | C-101 | 02-01-2016 | 200

我有两张桌子

  • 租赁详细信息
    ->[
    id
    建筑
    楼层
    公寓号
    名称
    司法部
    ]
  • rental\u detail
    存储此人的信息。
    这是租金详细信息

    | id | name |大楼|楼层|公寓|号|司法部
    |1 | aana | C | 1st | C-101 | 06-12-2015

    而且

  • 月租金
    ->[
    id
    建筑
    楼层
    公寓号
    日期
    ]存储个人每月租金支付的详细信息
  • 这是月租金

    | id |建筑|楼层|公寓|编号|日期|租金|
    |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

    我需要
    月租金的最长日期
    以及
    租金详情
    中关于人员的所有信息,其中建筑为c,楼层为1,公寓为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年2月3日支付最后一次租金

    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'
    

    这应该行得通。…

    像这样试试,应该会有帮助

    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'
    
    试试这个:

    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'
    

    您得到的输出??当您进行简单查询时,从建筑为c、楼层为1、公寓为c-101的月份开始的最大日期不要进行不必要的连接。只需匹配与这两个表相关的唯一id即可。底部的mr.id添加组如果没有join@user4499992它将无法工作从rentat_detail table获取最大日期Yes!因为这是你的要求。将其更改为rd.date显示两个表中的公共日期当您指定从哪个表中获取日期时,为什么要获取公共日期?你在用mySQL做什么?是的,我在用mySQL,是的,我指定了,但这需要一个共同的日期