I adlı masa üzerinde players
, daha sonra belirtilen diğer tablolar tries
, conversions
, penalties
, dropgoals
.
I players
, ardından aşağıdaki saymak gelen player_id
almak gerekir:
player_id
tries
en çok deneme sayısıplayer_id
conversions
içinde için dönüşüm sayısıplayer_id
penalties
içinde için ceza sayısıplayer_id
dropgoals
en çok dropgoals sayısı
Ve bu bütün her oyun için yaklaşık on beş oyuncuları sitesi rugby ilgilidir, olduğu gibi tek seferde gerçekleşmesi gerekiyor.
Ben çalıştığı, aşağıdaki denedim:
SELECT players.player_id, players.number, CASE WHEN (COUNT(tries.player_id) = 0) THEN ' ' ELSE COUNT(tries.player_id) END AS nrTries FROM players LEFT JOIN tries ON players.player_id = tries.player_id WHERE players.team_id IS NULL GROUP BY players.player_id ORDER BY players.number
Bu players
tablosundan tüm oyuncuları seçmek ve kendi çabalarım sayar, ama en kısa sürede şu şekilde değiştirin gibi bana bir hata veriyor:
SELECT players.player_id, players.number, player.name, CASE WHEN (COUNT(tries.player_id) = 0) THEN ' ' ELSE COUNT(tries.player_id) END AS nrTries FROM players, player LEFT JOIN tries ON players.player_id = tries.player_id WHERE players.player_id = player.player_id AND players.team_id IS NULL GROUP BY players.player_id ORDER BY players.number
It gives the following error:
Unknown column 'players.player_id' in 'on clause'
Bu bana lütfen yardım birisi, ben şimdi gün boyunca mücadele edilmiştir miyim?
Şimdiden teşekkürler
// edit:
Merhaba, tüm, ben bu kod bir oyuncu birden fazla tip attı zaman, her tür sayısını miscounts, çalışır ve dönüşümleri, ya da çalışır ve cezalar söylüyorlar ve yapılması haricinde, zekice çalışır, artık çok aptal hissediyorum hepsi aynı.
Benim oyuncu, 1 penaltı ve 3 dropgoals golü 3 cezalar ve 3 dropgoals gibi, ben yanlış anlamaya olamaz çıktılar diyelim.
İşte benim sorgu:
SELECT players.player_id, players.number, player.name, player.surname,
CASE WHEN (COUNT(tries.player_id) = 0) THEN '& nbsp;' ELSE COUNT(tries.player_id) END AS nrTries,
CASE WHEN (COUNT(conversions.player_id) = 0) THEN '& nbsp;' ELSE COUNT(conversions.player_id) END AS nrConversions,
CASE WHEN (COUNT(dropgoals.player_id) = 0) THEN '& nbsp;' ELSE COUNT(dropgoals.player_id) END AS nrDropgoals,
CASE WHEN (COUNT(penalties.player_id) = 0) THEN '& nbsp;' ELSE COUNT(penalties.player_id) END AS nrPenalties
FROM players
LEFT JOIN tries ON players.player_id = tries.player_id AND tries.game_id = '$game_id'
LEFT JOIN conversions ON players.player_id = conversions.player_id AND conversions.game_id = '$game_id'
LEFT JOIN dropgoals ON players.player_id = dropgoals.player_id AND dropgoals.game_id = '$game_id'
LEFT JOIN penalties ON players.player_id = penalties.player_id AND penalties.game_id = '$game_id'
LEFT JOIN player ON players.player_id = player.player_id
WHERE players.player_id = player.player_id AND players.team_id IS NULL AND players.game_id = '$game_id'
GROUP BY players.player_id ORDER BY players.number
*Please note: $game_id is a PHP variable.
Also: I have included a space between & and nbsp; otherwise it does not get ouputted to SO.*
Birisi bana doğru yönde işaret edebilir?