Hvordan update et felt i en tabel, m.felt hentet fra select join?
Ifølge http://mysql.us.themoes.org/doc/en/UPDATE.html gælder det, atUPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2, ...]
[WHERE where_definition]
[ORDER BY ...]
[LIMIT #]
Kan denne WHERE specification omfatte en SELECT, der laver JOIN?
EX: Man finder timetal for medlem = ’Nielsen’ (godt at se, hvad man har, før man ændrer på noget):
$result = mysql_query( "SELECT
k.id AS k_id,
k.medlem AS k_medlem,
t.id AS t_id,
t.medlemnr AS t_medlemnr,
t.opgave AS t_opgave,
t.dato AS t_dato,
t.timetal AS t_timetal
FROM
medlem AS k,
medlem_bidrag AS t
WHERE k.medlem = 'Nielsen' AND k.id = t.id
");
while ($row = mysql_fetch_array($result)) {
$k_id = $row["k_id"];
$k_kunde = $row["k_kunde"];
$t_id = $row["t_id"];
$t_medlemnr = $row["t_medlemnr"];
$t_opgave = $row["t_opgave"];
$t_dato = $row["t_dato"];
$t_timetal = $row["t_timetal"];
echo "$t_timetal<br><br>";
}
Hvordan kombinere med UPDATE til, at alle medlemmer = Nielsen (fra tabel medlem) skal ændres til timetal = 4 (i tabel medlem_bidrag)?
Man kan jo ikke sige:
$result = mysql_query( ”UPDATE medlem_bidrag SET timetal = ’4’ WHERE k.medlem = 'Nielsen' AND k.id = t.id ....) ---
--- WHERE-klausulen er hentet fra den anden tabel.
Så hvordan indsættes eller kombines UPDATE med SELECT af JOIN?
