1

次の2つのテーブルがあります。

devices:

ここに画像の説明を入力

tracking:

ここに画像の説明を入力

最新の緯度と経度を持つすべてのデバイスを返す MySQL クエリを作成する必要があります。最新のタイムスタンプ値を持つ各デバイスの追跡行のみをフェッチすることで、最新の行を選択できます。このクエリを自分で作成することはできません。助けてください。

出力列: devices.Name、devices.IMEI、tracking.latitude、tracking.longitude

ありがとう

4

2 に答える 2

3

追跡から上位データを取得する

select *
from   tracking join (select imei, max(ctimestamp) as maxtime
                      from tracking
                      group by imei) as sub
       on sub.imei = tracking.imei
          and sub.ctimestamp = tracking.timestamp

デバイステーブルに参加して、自分で名前を印刷できます

于 2013-02-17T10:46:41.073 に答える
2

左結合を使用して、新しい行がないことを確認します。

SELECT d.name, d.IMEI, t.latitude, t.longitude
FROM devices d
JOIN tracking t 
    ON d.IMEI=t.IMEI
LEFT JOIN tracking t2
     ON d.IMEI=t2.IMEI
    AND t2.ctimestamp>t.ctimestamp
WHERE t2.IMEI IS NULL

テスト用の SQLfiddle

于 2013-02-17T11:00:59.743 に答える