Podzapytanie i JOIN

0

Jak takie zapytanie przerobić na zapytanie z JOIN?

SELECT * FROM
	(SELECT `id` , MAX( `utc` ) AS max_utc FROM `gpmc` WHERE `cos` != 0 GROUP BY `id` ) AS tab1,
	`gpei`
WHERE `gpei`.`IMEI` = tab1.`IMEI` 

A taki kod mi działa

SELECT * FROM `gpmc` LEFT JOIN `gpei` ON `gpmc`.`IMEI` = `gpei`.`IMEI`  

Czy z podzapytaniami nie można robić JOIN? Funkcje uprościłem po to żeby były czytelniejsze

0

group by id? Chyba sobie robisz jaja... Chcesz powiedzieć że id nie jest tam unikalne? To co to za id? o_O
W ogóle ten kod się nie trzyma kupy. Z podzapytania wychodzi ci tabela która ma 2 pola: id oraz maksymalną wartość utc, a potem sobie jak gdyby nigdy nic próbujesz z tej tabeli wyciągać jakieś IMEI. Chyba coś za bardzo sobie uprościłeś...

0
SELECT `sz`, `dl`, `NAZWA`, `gps_rmc`.`IMEI`, `status`, DATE_FORMAT( `utc` , '%d.%m.%Y %H:%i:%s' ) AS utc_f 
FROM (
	SELECT `gps_rmc`.`IMEI` , MAX( `utc` ) AS max_utc, `NAZWA` 
	FROM `gps_rmc`
	LEFT JOIN `gps_imei` ON `gps_rmc`.`IMEI` = `gps_imei`.`IMEI` 
	WHERE `sz` != 0 AND `dl` != 0 
	GROUP BY `IMEI` ) AS tab1, 
	`gps_rmc` 
WHERE `sz` != 0 AND `dl` != 0 AND `gps_rmc`.`IMEI` = tab1.`IMEI` AND `gps_rmc`.`utc` = tab1.max_utc 

Mam takie dosyć rozbudowane zapytanie i kombinuje jak je zoptymalizować.

Dosyć dużym problem jest wyciąganie IMEI dla największego czasu w utc dla danego numeru IMEI (mysle ze da się to zoptymalizowac)

1 użytkowników online, w tym zalogowanych: 0, gości: 1