テーブルを結合する際にmysqlのクエリが重複行を返します。

土星接続詞:

私は店がファイルパスuser_avatarというテーブルがあります。

id | userid | file         | last_update |
1  | 23     | myphoto.png  | x_timestamp |
2  | 23     | myphoto2.png | x_timestamp |
3  | 25     | myavatar.png | x_timestamp |

私はリターンがuser_scoreというテーブルがあります。

id | gamerid | score | last_update |
1  | 23      | 44    | x_timestamp |
2  | 25      | 99    | x_timestamp |

これは私が自分のアバターとユーザーのスコアを表示するために使用されたクエリ

SELECT * FROM user_score us LEFT JOIN user_avatar ua ON us.gamerid=ua.userid 

彼はuser_avatarテーブルに2枚の異なる写真をダウンロードしたため、クエリ上記のユーザー23のために2つの重複する行を返します。今のところ、それは次のように出力します。

GAMER SCORES RESULTS
myphoto.png  | 44
myphoto2.png | 44
myavatar.png | 99

実際には、唯一の1つの行がユーザごとに返されるべきであるとダウンロードされた最後のアバターは、主アバターとして使用する必要があります。私はこれをどのように修正することができますか?

Fahmi:

あなたは以下試すことができます -

SELECT * FROM user_score us LEFT JOIN user_avatar ua ON us.gamerid=ua.userid 
and ua.last_update = 
   (select max(last_update) from user_avatar ua1 where ua.userid=ua1.userid)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=8774&siteId=1