重複の可能性:
MySQLクエリのすべての行にシーケンス番号が必要
だから私はこの素晴らしい使用法を見つけました:
SELECT (@row:=@row+1) AS ROW, ID
FROM TableA ,(SELECT @row := 0) r
ORDER BY ID DESC
私のテーブルは次のようになります。
SELECT (@row:=@row+1) AS ROW, ID , ColA, ColB, ColC
FROM TableA
JOIN TableB on TableB.ID = TableA.ID
JOIN TableC on TableC.ID = TableA.ID
,(SELECT @row := 0) r
ORDER BY ID DESC
@ row:= @ row + 1はうまく機能しますが、ID順に行を並べ替えます。
だから私はもっとこのようなものを手に入れます:
ROW | ID
3 15
2 10
1 2
私が求めているのは:
ROW | ID
1 15
2 10
3 2
注:( IDのORDER BYに関係なく、各行の連続番号はif I remove the JOINs I DO get the requested result
どれですか)に気づきましたROW
基本的に、行番号はORDERBYが実行される前に評価されるようです。行が指定された後にORDERBYを実行する必要があります。
それをどのように達成できるか、そしてそれを台無しにするJOINSは何をするのかについてのアイデアはありますか?
どうも!