2013-12-09 3 views
0

Это мой первый запрос, чтобы вставить оценки из формы:Как я могу вставить оценку в одну таблицу в виде средних значений из другой таблицы?

$query1 = "INSERT INTO Category(timing, musicality, technique, difficulty, performance_id) 
     VALUES ('{$timing}', '{$musicality}', '{$technique}', '{$difficulty}','{$performance}')" 
     ; 

Это работает, и это ставит баллы в индивидуальную таблицу рекордов, теперь им пытаются взять среднее значение этих показателей и поместить их в таблицу где находится информация конкурсантов, я оставил столбец пустой для баллов, чтобы перейти в и Heres запрос я пытался за что:

$query2 = "Insert into Contestants (score) select 
sum(timing + musicality + technique + difficulty)/(select count(timing)* 4 from Category where performance_id = '{$performance}') 
From Category 
WHERE performance_id = '{$performance}';"; 

что происходит, оно вставляет правильный средний балл в таблицу, что я хотите, чтобы он был в правильном поле, но вместо обновления строки на основе производительности_ид , он создает новую строку. Как я могу это исправить?

+0

ли вы попробовать использовать 'UPDATE' заявление вместо' INSERT'? –

+0

Если вы хотите обновить, используйте ключевое слово 'UPDATE'. –

+0

У вас есть столбец 'performance_id' в таблице' Contestants'? –

ответ

0

Попробуйте это:

$query2 = "UPDATE Contestants SET score = (select 
sum(timing + musicality + technique + difficulty)/(select count(timing)* 4 from Category where performance_id = '{$performance}') 
From Category 
WHERE performance_id = '{$performance}') 
WHERE performance_id = '{$performance}';"; 
+0

Большое спасибо, он работает так, как мне нужно, очень ценю это. –

Смежные вопросы