Table: Player
-----------------
| id | gameId |
-----------------
| 1 | 1 |
-----------------
| 2 | 1 |
-----------------
| 3 | 2 |
-----------------
| 4 | 1 |
-----------------
Table: Game
----------
| gameId |
----------
| 1 |
----------
| 2 |
----------
En fazla oyuncuyla oyuna sahip olmak istiyorum, bu durumda oyunda 1. Bu, denediğim şeydi, ama sorgumla 2 sütun aldım: gi ve sayıldı. Ben Aşağıdaki deneyebilirsiniz tek GIMysql'deki en yaygın FK'nin kimliği nasıl alınır?
SELECT gi, MAX(counted) FROM
(
SELECT gameId AS gi, COUNT(gameId) AS counted
FROM player
GROUP BY gameId
) AS countens;
Bu, en yüksek "sayılan" değeri alır, ancak 'gameId' için döndürülen değer belirsizdir. Yani, geri dönen değerin en fazla oyuncuya sahip olan oyun için geçerli olacağının bir garantisi yoktur. MySQL dışındaki veritabanları, bu deyimle "select listesindeki aggregate değil, group by" ifadesini içeren bir hata oluşturur. Varsayılan olarak, bir MySQL uzantısı bu sorguyu çalışmasına izin verir. Sql_mode içinde ONLY_FULL_GROUP_BY dahil ederek bir hata döndürmek için MySQL'i alabiliriz. – spencer7593