2015-10-09 3 views
0

У меня возникла проблема с получением запроса последней записи. Моя таблица показана ниже.Получение последних данных о покупке из базы данных

|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 для даты (дата).

+1

'select fname, total, cname, date from purchase where date = (выберите max (date) from purchase)' –

+0

он действительно работает, но он извлекает все данные, которые были вставлены сегодня. Как я могу указать только пример одного покупателя? .. извините, я не хорошо с моим английским – Zho

+0

«Мои данные Структура xampp для даты (дата)« Действительно? Это не похоже на это! И не храните '$' – Strawberry

ответ

0

Попробуйте следующее!

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

Не хватает ли окончательной цены ('' ')? –

0

Вы должны использовать вспомогательный запрос для этого, в котором вы извлечь максимальные сроки от CNAME и имя_файла (на основе вашей продукции, вам нужно 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 
+0

отображает всю дату, включая предыдущую дату, месяц назад – Zho

Смежные вопросы