少し前まで意図したとおりに動作していると思っていたクエリがあります。このクエリを変更する必要があります
次のクエリは、私の 'player'テーブルを通過して、その学校の体重が最高の才能を持つすべてのプレイヤーの値をのに更新します。
例えば、体重Xに500人のプレイヤーがいる場合、同じ学校に所属するプレイヤーをすべて選択し、最も高いプレイヤーの場合は 'starter'の値をtrueに更新しますスキル。
UPDATE player
SET starter = 'TRUE'
WHERE NOT EXISTS
(
SELECT school, weight, skill
FROM player b "
WHERE b.school = player.school
AND b.weight = player.weight
AND b.skill > player.skill
)
AND player.game_id = 1
私は今に走った問題も同じスキルを持っている同じ重量で同じ学校からの2人の選手、存在する場合、両方の彼らの「スターター」値がtrueに設定されていることです。
私の質問は、特定の学校のウェイトで1つのスターターだけを許可するには、このクエリーに何を追加する必要がありますか?
また、「年齢」という名前の列があります。できる場合は、同じスキルが発生する2つの年齢を選択したいと考えています。
同じ年齢の場合はどうなりますか? –
良い点..合計スターターが各学校の合計ウェイトよりも大きいかどうかを確認するために追加のクエリを実行し、影響を受けるエリアを見つけて編集することが最もよいと思われます。 – Meowbits
@Meowbits:私これはAmitが言ったことではないと考えています。これは1つのクエリで完全に可能でなければなりません。 –