从数据库中检索最新的购买数据

时间:2015-10-09 13:57:02

标签: mysql

我的查询检索最新记录时遇到问题。我的表格如下所示。

|cname|fname |date     |total|
|tony |bun   |10-8-2015|$0.80|
|tony |lamb  |10-8-2015|$0.80|
|tony |cheese|10-8-2015|$0.80|
|tony |spicy |10-8-2015|$0.80|
|sue  |crispy|10-9-2015|$0.80|
|sue  |beef  |10-9-2015|$0.80|
|sue  |normal|10-9-2015|$0.80|
|sue  |normal|10-9-2015|$0.80|

这是我的SQL查询:

$query1="select fname, total, cname, max_date = max(date) from purchase
group by cname";

我希望结果如下所示:

|cname|fname |date     |total|
|sue  |crispy|10-9-2015|$0.80|
|sue  |beef  |10-9-2015|$0.80|
|sue  |normal|10-9-2015|$0.80|
|sue  |normal|10-9-2015|$0.80|

我的问题是我想要检索最新的数据,但它不断发出数据未找到的错误。我的日期数据XAMPP结构是(日期)。

2 个答案:

答案 0 :(得分:0)

尝试以下操作!

$query1 = "select fname, total, cname, max(date) from purchase as maxdate
           group by cname limit 1;

答案 1 :(得分:0)

你需要使用一个子查询来检索cname和fname的最大日期(根据你的输出,你也需要fname)并将它连接回原始表:

select t.* from table t
inner join (
      select cname, fname, max(date) as mdate from table group by cname, fname) t2
on t.fname=t2.fname and t.cname=t2.cname and t.date=t2.mdate