SQL: Beim Insert ID aus anderer tabelle verwenden
hmm
- sql
Hi Leute,
meine query sieht so aus:
insert into team_mitarbeiter (team_id, mitarbeiter_id, stunden_pro_woche) values ($team_id, $mitarbeiter_id, 1) where not exist (select 1 from team_mitarbeiter where team_id = $team_id and mitarbeiter_id = $mitarbeiter_id);
die team_id habe ich, aber die mitarbeiter_id muss ich mir leider mit folgender query holen (name habe ich):
select mitarbeiter_id from mitarbeiter where name = $name;
kann ich beide querys zusammenlegen?
kann ich beide querys zusammenlegen?
Subquery?
Pit
hi
kann ich beide querys zusammenlegen?
Nein, so stellt sich die Frage nicht. Sondern so: Wie bekomme ich die mitarbeiter_id in das Frontend, wo mitarbeiter_name auszuwählen ist um dessen Stunden/Woche einzutragen? Und diese Antwort dürfte ziemlich einfach sein.
Und nochwas: where team_id = $team_id
ist bedenklich, also das Einfügen von Variablen in SQL Statements. Unter SQL Injection findest Du Verfahren ebe das zu verhindern.
MfG
danke.
ich hab das jetzt so gemacht:
insert into user_mitarbeiter (user_id, mitarbeiter_id) values ($user_id, (select mitarbeiter_id from mitarbeiter where name = $name));
ist bedenklich, also das Einfügen von Variablen in SQL Statements. Unter SQL Injection findest Du Verfahren ebe das zu verhindern.
ich mach das so:
var insert_team_mitarbeiter = "insert into team_mitarbeiter (team_id, mitarbeiter_id, stunden_pro_woche) values ($team_id, (select mitarbeiter_id from mitarbeiter where name = $name ),1);";
st = db.prepare(insert_team_mitarbeiter);
st.run({$team_id: user_id[0].id, $name: data.name}, function(err) {});
st.finalize();
ich dachte das verhindert bereits sql injection?
Hello,
insert into team_mitarbeiter (team_id, mitarbeiter_id, stunden_pro_woche) values ($team_id, $mitarbeiter_id, 1) where not exist (select 1 from team_mitarbeiter where team_id = $team_id and mitarbeiter_id = $mitarbeiter_id);
die team_id habe ich, aber die mitarbeiter_id muss ich mir leider mit folgender query holen (name habe ich):
select mitarbeiter_id from mitarbeiter where name = $name;
kann ich beide querys zusammenlegen?
Wenn Dir die Konsistenz deiner Daten wichtig ist, MUSST Du beide Queries zu einem zusammenfassen, bzw. mit Tabellensperren arbeiten.
Liebe Grüße
Tom S.