2014-09-21 5 views
0

У меня есть небольшая проблема. Я использую phpMyAdmin.Подключить SELECT AVG и UPDATE

То моя попытка:

SELECT AVG (ws_spiel_berechnung.note) as Test 
FROM ws_spiel_berechnung 
LEFT JOIN ws_spieler 
ON ws_spiel_berechnung.spieler_id = ws_spieler.id 
INNER JOIN ws_spiel ON ws_spiel.id = ws_spiel_berechnung.spiel_id 
where ws_spiel.spieltyp = 'Ligaspiel' and ws_spieler.id = 6875; 
update ws_spieler set note_anpassung = Test where id = 6875 

Я хочу взять AVG(ws_spiel_berechnung.note) к ws_spieler.note_anpassung. Например, результат от SELECT AVG составляет 2,46. Теперь 2,46 следует обновить до note_anpassung. Но это не работает (думаю, из-за «теста»).

Другой вопрос: идентификатор - это просто пример. Я хочу это для каждого id (он начинается с id 1 и заканчивается на id 1000). Цель состоит в том, что у меня есть запись AVG с каждого идентификатора на "ws_spieler.note_anpassung".

Я использую google и этот сайт, но я не понимаю. Я был бы счастлив, если бы вы могли мне помочь. И простите за мой английский;)

ответ

0

В этом случае, я думаю, что вы можете делать то, что вы хотите с коррелированными подзапросами:

update ws_spieler s 
    set s.note_anpassung = (select avg(sp.note) 
          from ws_spiel_berechnung sp 
          where sp. spieler_id = s.id 
          ) 
    where s.spieltyp = 'Ligaspiel' and s.id = 6875; 
+0

Это выглядит хорошо, но у меня есть одна проблема: «Ligaspiel» составляет от "ws_spiel". Должна быть проверка, если ws_spiel_berechnung.id = ws_spiel.id И ws_spiel.typ = 'Ligatyp' Вы понимаете? Спасибо за вашу помощь! – derphil

+0

Привет, это я снова. У меня все та же проблема. Может ли кто-нибудь мне помочь? Благодаря! – derphil

+0

Привет, может мне кто-нибудь помочь? Большое спасибо! – derphil