próbuję powrócić zabytkowych miejsc rekordowa zaMYSQL wybierz MAX Data wewnątrz instrukcji przyłączenia
Co mam jest:
SELECT l.location, t.transaction_id, t.date_modified
FROM transactions as t
INNER JOIN (
SELECT
t1.received_id, t1.transaction_id, t1.date_modified
FROM (
SELECT received_id, MAX(date_modified) as maxmodify
FROM transactions
GROUP BY received_id) as max_record
JOIN transactions as t1
ON (t1.received_id =max_record.received_id)
) as whatever
INNER JOIN locations as l
ON l.location_id = t.location_id
INNER JOIN received as r
ON r.received_id = t.received_id
WHERE t.received_id='1782'
ORDER BY t.date_modified DESC
To trwa około 1 min do analizowania i zwraca dane jak:
T-E1A 67294 2013-05-29 14:05:30
T-E1A 67293 2013-05-29 14:05:30
T-E1A 67294 2013-05-29 14:05:30
T-E1A 67293 2013-05-29 14:05:30
T-E1A 67294 2013-05-29 14:05:30
T-E1A 67293 2013-05-29 14:05:30
T-E1A 67294 2013-05-29 14:05:30
Co ja naprawdę spodziewałem się zobaczyć jak to dane z kwerendy jak poniżej:
SELECT l.location, t.transaction_id, t.date_modified FROM transactions as t
JOIN locations as l
ON l.location_id = t.location_id
JOIN received as r
ON r.received_id = t.received_id
WHERE t.received_id='1782'
ORDER BY t.date_modified DESC
Które zwraca
T-E1A 67290 2013-05-29 13:58:26
T-E1A 67289 2013-05-29 13:58:26
ADJUST 67283 2013-04-26 11:33:54
ADJUST 67284 2013-04-26 11:33:54
ST10 67279 2013-04-26 09:52:41
ST10 67278 2013-04-26 09:52:13
ST10 67277 2013-04-26 09:50:58
ST10 67276 2013-04-26 09:50:20
SH3 67274 2013-04-26 09:49:39
To drugie zapytanie jest lepiej, ale naprawdę chcę tylko pokazać czas ostatniej modyfikacji dla każdego ID rekordu i lokalizacji.
Czy ktoś może zobaczyć, co robię źle? Doceniam pomoc.
Dziękuję, że jest to najodpowiedniejsza trasa, ale mam problemy, jak można zobaczyć w pierwszym zapytaniu, próbując uzyskać połączenie także z innymi tabelami (lokalizacjami, odebranymi). – nodsdorf
Tak, potrzebujesz klauzuli ON z każdą klauzulą JOIN – Strawberry