5 Stimmen

Einfügen mit Where-Klausel

Ich verwende die folgende Abfrage, um Werte in ein Feld in Tabelle A einzufügen.

insert
into A (name)
values ('abc')
where
   A.id=B.code
   and B.dept='hr' ;

Ist diese Anfrage richtig? Wenn nicht, geben Sie mir bitte einen korrekten Weg.

1 Stimmen

Schularbeiten? Das ist eine seltsame Frage, haben Sie nicht mehr Informationen für uns?

9voto

htaler Punkte 163

Sie sollten lieber UPDATE Wenn Sie den Wert des Feldes in Datensätzen ändern möchten, die Sie mit der Funktion WHERE Klausel.

1 Stimmen

Oder 'upsert', wenn Sie eine dieser neumodischen Datenbanken verwenden :-)

6voto

Quassnoi Punkte 396418
MERGE
INTO a
USING (
  SELECT *
  FROM b
  WHERE b.dept = 'hr'
)
ON a.id = b.code
WHEN NOT MATCHED THEN
  INSERT (id, name)
  VALUES (code, 'abc')
WHEN MATCHED THEN
  UPDATE
  SET name = 'abc'

1voto

ShoeLace Punkte 3200

Der Einschub sollte in Ordnung sein

insert
into A (name)
values ('abc')

Es hängt wirklich davon ab, was Sie mit der Where-Klausel und dem B-Tabellenverweis erreichen wollen.

1voto

Harvy Derage Punkte 21
INSERT INTO A (name)
SELECT name 
FROM A as a
LEFT JOIN B as b ON b.id=a.id
WHERE a.id=b.code AND b.dept='hr'

A ist die erste Tabelle, dann B ist die zweite Tabelle JOIN zusammen mit LEFT JOIN dann Name ist die Spalte. dies ist, was er auf seine Frage zu tun will.

Dies ist die Aufgabe von "INSERT SELECT STATEMENT".

Abfrage, die beim Ausführen eines Selects und der Kombination von WHERE und JOIN eingefügt werden kann.

INSERT TABLE1 (column1)
SELECT column1
FROM TABLE1 as a
LEFT JOIN TABLE2 as b ON b.column1=a.column1
WHERE a.column2=b.column3 AND b.column4='hr'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X