我有一段时间没有触及PHP,并尝试在我的数据库中选择5个最新的条目并将它们打印到屏幕上。 我不推荐使用mysql命令,而是使用PDO-> mysql。 我的查询是这样的: 我假设我必须将值放入数组并创建一个循环并输出结果。 我用上面的代码填补了空白。 更新 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我找到了许多选择最近日期的解决方案,但是,这样做时我无法成功包含所有列,因为我拥有希望包含的唯一数据。
这是我的原始查询:
select p.scode, u.scode, sq.dsqft0, sq.dtdate
from unit u
join property p on p.hmy = u.hproperty
join sqft sq on sq.hpointer = u.hmy
where p.hmy = 19
返回:
p.scode u.scode dsqft0 dtdate
-------------------------------------------------------------------
01200100 100 23879 1/1/1980 12:00:00 AM
01200100 100 19000 10/30/2017 12:00:00 AM
01200100 100 23879 11/1/2018 12:00:00 AM
01200100 200 33854 1/1/1980 12:00:00 AM
01200100 400 7056 1/1/1980 12:00:00 AM
01200100 400 12056 6/1/2015 12:00:00 AM
我只想接收每个p.scode和u.scode的最新条目,但是,我不想按sq.dsqft0分组-我只想返回该列中最新的内容p.scode / u.scode行。
如果我从查询中删除sq.dsqft0列,则可以缩小到所需的行,但是我需要sq.dsqft0列中的信息。 这是几乎可行的查询:
select p.scode,u.scode,max(sq.dtdate)as currentdate
from unit u
join property p on p.hmy=u.hproperty
join sqft sq on sq.hpointer=u.hmy
where p.hmy=19
group by p.scode,u.scode
返回:
p.scode u.scode currentdate
01200100 100 11/1/2018 12:00:00 AM
01200100 200 1/1/1980 12:00:00 AM
01200100 400 6/1/2015 12:00:00 AM
这些是正确的行,但是,如果我包含sq.dsqft0,则必须将其包括在group by语句中,并且它返回sq.dsqft0列不匹配的其他行。 如果我输入以下内容:
select p.scode,u.scode,sq.dsqft0,max(sq.dtdate) as currentdate
from unit u
join property p on p.hmy=u.hproperty
join sqft sq on sq.hpointer=u.hmy
where p.hmy=19
group by p.scode,u.scode,sq.dsqft0
它返回以下内容:
p.scode u.scode dsqft0 dtdate
01200100 100 19000 10/30/2017 12:00:00 AM
01200100 100 23879 11/1/2018 12:00:00 AM
01200100 200 33854 1/1/1980 12:00:00 AM
01200100 400 7056 1/1/1980 12:00:00 AM
01200100 400 12056 6/1/2015 12:00:00 AM
我的建议是使用子查询查找最新数据,然后与原始表结合以获取“ dsqft0”:
select * from
( select p.scode,u.scode as uscode, current_date, dsqft0
from unit u
join property p on p.hmy=u.hproperty
join sqft sq on sq.hpointer=u.hmy
where p.hmy=19 ) a
join
(select p.scode,u.scode as uscode ,max(sq.dtdate)as currentdate
from unit u
join property p on p.hmy=u.hproperty
join sqft sq on sq.hpointer=u.hmy
where p.hmy=19
group by p.scode,u.scode ) sub
on a.scode = sub.scode
and a.uscode = sub.uscode
and a.current_date = sub_current_date
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.