INSERT INTO SELECT

Mit dem SQL-Statement „INSERT INTO SELECT“ können einzelne Spalten oder ein gesamter Datensatz aus einer SELECT-Anweisung als neuer Datensatz hinzugefügt werden.

Beispiel 1:

Alle Spalten sollen in den neuen Datensatz eingefügt werden (Datensatz kopieren):

INSERT INTO USER SELECT * FROM USER WHERE id = 314

Beispiel 2:

Zwei von drei Spalten der Tabelle „neighborhood“ sollen mit Inhalten aus der Tabelle „users“ gefüllt werden:

	INSERT INTO neighborhood 
		SELECT :id, id, distance
		FROM ( SELECT id, ST_Distance ( ST_GeogFromText( :basis_1 ),
			users.basis_1 ) AS distance FROM users WHERE lastlogin + INTERVAL '7 days' > now() ) AS users
		WHERE distance > 0 ORDER BY distance LIMIT 500";