Come si scrive INSERT se ottengo i valori di colA da TableX, colB da TableY e colC da TableZ?SQL: INSERT INTO ... VALUES..SELECT
ad esempio: INSERT INTO TableA (cola, COLB, colC) VALORI
Tutte le idee, se è possibile (?,?,?)?
Come si scrive INSERT se ottengo i valori di colA da TableX, colB da TableY e colC da TableZ?SQL: INSERT INTO ... VALUES..SELECT
ad esempio: INSERT INTO TableA (cola, COLB, colC) VALORI
Tutte le idee, se è possibile (?,?,?)?
INSERT INTO TableA(colA, colB, colC)
SELECT TableX.valA, TableY.valB, TableZ.valC
FROM TableX
INNER JOIN TableY ON :......
INNER JOIN TableZ ON ........
Naturalmente, TableX, Tabley e TAbleZ potrebbero anche essere collegati in qualche altro modo (non INNER JOIN).
Se non è possibile trovare alcuna relazione tra i tavoli a tutti, si potrebbe anche fare tre diversi
SELECT @value1 = valA FROM TableX WHERE ......
SELECT @value2 = valB FROM TableY WHERE ......
SELECT @value3 = valC FROM TableZ WHERE ......
e poi un inserto in questo modo:
INSERT INTO TableA(colA, colB, colC)
VALUES(@value1, @value2, @value3)
Questo è l'ultimo ultima risorsa, è impossibile esprimere tutto in una singola istruzione SELECT
.
Marc
il valA, valB, valC proviene da diverse tabelle ... –
Insert into TableA (ColA, ColB, ColC) . . .
Devono essere i nomi delle colonne come sono nella tabella A. Non c'è niente di sbagliato con
Insert into TableA (ColA, ColB, ColC) . . .
Select TableX.Col1, TableY.Col1, TableZ.Col5
From TableX, TableY, TableZ
Where . . .
ok..great ... sto usando questo in java, quindi se colC sta ottenendo i valori da un metodo (es: method())? –
Mi spiace, non lo faccio Java –
Sarà necessario unire le tabelle che si desidera effettuare la selezione a partire dal.
Ecco una risorsa su SQL unisce:
www.w3schools.com/sql/sql_join.asp
Si potrebbe anche voler controllare questo libro PDF gratuito dai ragazzi a www.simple-talk.com che copre basi SQL:
In risposta alla risposta di marc_s, è possibile eseguire query da tabelle non correlate in quanto selezionare:
INSERT INTO TableA
(colA, colB, colC)
SELECT
(SELECT valA FROM TableX WHERE ...),
(SELECT valB FROM TableY WHERE ...),
(SELECT valC FROM TableZ WHERE ...)
+1 - ottima risposta - grazie! Si impara qualcosa di nuovo ogni giorno.... –
è questo Java? sembra essere un semplice problema SQL o mi sono perso qualcosa? –
Il tag Java sembra essere aggiunto per errore, vedrò se riesco a rimuoverlo – Andomar
Che cosa è successo al poster originale? No pts. Qualche possibilità che un amministratore possa selezionare una risposta qui? –