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,是的,我指定了,但这需要一个共同的日期