こんにちは、私は 2 つのテーブルa2_dealを持っています(テーブル全体が非常に大きいため言及していません)。
deviceID companyID stage serverTime
1 14 -1 1349449200
1 1 -1 1349445600
2 21 -1 1349449200
3 17 -1 1349447160
1 14 3 1344449200
1 14 2 1340449200
a2_compという別のテーブル
companyID name
1 Microsoft
14 DELL
15 APPLE
17 Google
以下のクエリを使用して、会社の最新の段階を取得しようとしています。
SELECT deal.companyID, companies.name as Company,
if(max(serverTime),stage,Null) as Stage
FROM `a2_deal` AS deal
LEFT JOIN `a2_comp` AS companies ON deal.companyID = companies.companyID
GROUP BY companyID
ORDER BY serverTime
私のクエリでは、最新のサーバー時間に関連するステージ値を選択することを意味するステージとして if(max(serverTime),stage,Null) を使用しています。つまり、companyID 14 のステージとして -1 が返されるはずです....しかし、何らかの理由で正しい出力が得られません..ここで私のロジックがどのように間違っているかを説明してください...ありがとう