1

質問があります

SELECT cm.posted_at, s.id, s.name, s.device, co.status, co.last_seen, d.device_id 
FROM station s LEFT JOIN chat_online co 
ON s.id = co.station_id AND s.device = co.device_id 
LEFT JOIN device d ON s.device=d.id 
LEFT JOIN chat_message cm ON cm.station_id=s.id 
WHERE s.status='1' AND (co.role='station' OR co.role IS NULL) 
GROUP BY s.id 
ORDER BY cm.posted_at DESC

上記のクエリを実行している間、chat_message には 1 つのステーションの複数のエントリがあります。各ステーション ID に対応する chat_message の最初のエントリを取得しています。ステーションでchat_messageに参加したまま、chat_messageの最後のエントリを取得するにはどうすればよいですか

少し早いですがお礼を

4

1 に答える 1

2

私が理解しているように、次のようなデータがあります。 ここに画像の説明を入力

このようにクエリする必要があります

select cm.posted_at, s.id, s.name, s.device from station s
JOIN      (
              SELECT    MAX(posted_at) posted_at,stationId
              FROM      chat_message 
              GROUP BY  stationId
          ) cm ON (cm.stationId = s.id)

ここに画像の説明を入力

于 2016-05-07T06:07:31.150 に答える