私はMySQLにかなり慣れていません。この問題があり、ヘルプを検索しましたが、答えが見つかりませんでした(おそらく、何を検索すればよいかわからないためです)。簡単な解決策があると確信しています。
次のような単純な MySQL テーブルがあります。
id | referenceid | status
40 104702 4
39 104720 2
38 104720 0
37 104719 2
36 104719 0
35 104702 2
34 104702 0
41 104719 5
次の出力を生成する配列をフェッチしたい:
一意の「referenceid」フィールドごとに、最も高い「ID」(つまり最新のもの) とその「ステータス」を知りたいです。
だから私はこのクエリを試しました:
$result = mysql_query(
"SELECT status,id,referenceid
FROM image_status_tracking
GROUP BY referenceid",$db);
while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$status = $row['status'];
$referenceid = $row['referenceid'];
echo "ID $id, REFID $referenceid, Status $status <br />";
}
次の出力が得られます。
ID 40, REFID 104702, Status 4
ID 37, REFID 104719, Status 2
ID 39, REFID 104720, Status 2
しかし、これは私が望んでいた結果ではありません。referenceid 104719 の ID とステータスは、37 と 2 ではなく、41 と 5 である必要があります。
各参照 ID の最新の ID 行出力を取得する方法がわかりません。
私が気付いたのは、PHPMYADMIN で (上記の表で確認できます)、ID が逆の順序でリストされており、最新の ID が一番下にあるということです。それがこの問題に関連しているかどうかはわかりません。
これが明確であることを願っています。それは簡単なことだと確信しています。
読んでくれてありがとう。
ジェームズ