2013-09-14 3 views
0

Итак, у меня есть таблица с несколькими элементами моих пользователей, и мне нужно сгруппировать по их идентификаторам и получить последний регистр в таблице.Как создать представление с последней записью в MySQL?

Чтобы оптимизировать мою работу, я создал представление, используя запрос с помощью SELECT внутри другого для заказа по потоковому потоку, но он терпит неудачу. Я думаю, что он не может строить по взглядам или уже имеет решение?

Пожалуйста, если кто-нибудь знает, как я могу это сделать, поделитесь!

Спасибо!

P.S .: К сожалению, вот код:

SELECT 
    dg_users.id, 
    dg_users.email, 
    dg_maps.id, 
    dg_maps.latitude, 
    dg_maps.longitude, 
    dg_maps.timestamp 
FROM 
    (SELECT 
     * 
    FROM 
     dg_maps 
    ORDER BY dg_maps.timestamp DESC) dg_maps 
JOIN 
    dg_geologs ON dg_geologs.map_id = dg_maps.id 
JOIN 
    dg_users ON dg_users.id = dg_geologs.user_id 
GROUP BY dg_geologs.user_id; 
+1

и вы код? –

+0

Извините, я был отредактирован выше. –

ответ

2

Основываясь на том, что вы не опубликовали структуру таблицы, я могу только дать общий ответ. Я бы сказал, что, думаю, что представление о таком маленьком запросе не дает такой большой пользы, если у вас нет причин, перечисленных here (When to use database views and when not?).

Для того, чтобы создать представление с последней вставленной записи вы могли бы сделать что-то вроде этого:

CREATE VIEW MyView AS 
SELECT * 
FROM myTable 
ORDER BY TIMESTAMP DESC LIMIT 1; 

Где:

  • MyView это имя, которое вы даете вашему мнению
  • myTable является вашим столом
  • метка времени это поле с отметкой времени

И вы бы запросить это с:

select * from MyView; 
+0

Я редактировал мое сообщение выше. То, что я должен знать в этом запросе, - это последняя запись для каждого зарегистрированного пользователя. –

+0

Вы должны задать новый вопрос, если он отличается от оригинала. –

+0

Спасибо! Я сделаю это –

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