私はゲームのエントリを含むデータベーステーブルを持っている:別のテーブルのカウントでMySQLの結果を注文する方法は?
--------------------------------------------------------
| game_id | title | description | entry_time |
--------------------------------------------------------
| 1 | Game 1 | Descript... | yyyy-mm-dd hh:mm:ss |
--------------------------------------------------------
| 2 | Game 2 | Descript... | yyyy-mm-dd hh:mm:ss |
--------------------------------------------------------
、別含んだゲームプレイ履歴:
-----------------------------------------------
| game_id | user_id | entry_time |
-----------------------------------------------
| 1 | 0da89sadf89 | yyyy-mm-dd hh:mm:ss |
-----------------------------------------------
| 1 | f8jsf89vjs9 | yyyy-mm-dd hh:mm:ss |
-----------------------------------------------
| 2 | f8jsf89vjs9 | yyyy-mm-dd hh:mm:ss |
-----------------------------------------------
私はゲームの人気に基づいて、最初のテーブルからの結果を選択しようとしています。
SELECT games.game_id, games.title, games.description
FROM `games`
JOIN foo_db.game_plays game_plays
ON game_plays.game_id LIKE games.game_id
WHERE games.title LIKE "%game%"
ORDER BY COUNT(game_plays.game_id) DESC, games.entry_time DESC
LIMIT 10
何らかの理由で、結果が1つだけ返されます(「ゲーム1」)。
JOIN
を削除し、結果をentry_time
で注文すると、両方の結果が期待通りに返されます。
'GROUP BY'が欠落しています。 'JOIN'も正しく処理されません。 – 1000111
'JOIN'を拡張することができます(私は' GROUP BY'を追加しました。 – Krii
game_plays.game_id LIKE games.game_id?どうしてですか?game_plays.game_id = games.game_id – Jens